Comment obtenir le code de sortie à l'aide de Go
Dans Go, le package os/exec fournit les moyens d'exécuter des commandes système. Cependant, récupérer le code de sortie pose un défi.
Récupérer le code de sortie en cas de succès
Lorsqu'une commande se termine avec le code de sortie 0, la fonction cmd.Wait() renvoie néant.
Récupérer le code de sortie en cas d'échec (pour Linux Uniquement)
Pour les systèmes Linux, l'extrait de code suivant montre comment obtenir le code de sortie lorsque la commande échoue :
import ( "fmt" "log" "os/exec" "syscall" ) func main() { cmd := exec.Command("git", "blub") if err := cmd.Start(); err != nil { log.Fatalf("cmd.Start: %v", err) } if err := cmd.Wait(); err != nil { if exiterr, ok := err.(*exec.ExitError); ok { fmt.Printf("Exit Status: %d", exiterr.ExitCode()) } else { log.Fatalf("cmd.Wait: %v", err) } } }
Aucune approche multiplateforme
Malheureusement, il n'existe pas de méthode multiplateforme pour récupérer le code de sortie en cas d'échec. L'API os/exec ne dispose pas de cette fonctionnalité de par sa conception.
Ressource supplémentaire
Cet article complet développe ce sujet et fournit des détails techniques supplémentaires : http://golang. org/pkg/os/exec/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!