Maison >développement back-end >Golang >Comment récupérer le code de sortie d'une commande exécutée en Go ?
Obtention du code de sortie dans Go
L'exécution de commandes sur le système d'exploitation à l'aide du package os/exec offre un moyen pratique d'interagir avec des processus. Cependant, obtenir le code de sortie d'une commande exécutée peut être un défi au début.
Pour résoudre ce problème, une approche consiste à surveiller si la fonction cmd.Wait() renvoie nil, ce qui indique un code de sortie de 0. Cependant, accéder au code de sortie spécifique en cas d'erreur peut être plus complexe.
Code de sortie spécifique à la plateforme Récupération
Malheureusement, il n'existe pas de mécanisme multiplateforme pour récupérer le code de sortie en cas d'erreur. La solution de contournement suivante s'adresse spécifiquement aux systèmes Linux :
import ( "os/exec" "log" "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 { log.Printf("Exit Status: %d", exiterr.ExitCode()) } else { log.Fatalf("cmd.Wait: %v", err) } } }
Cette approche utilise le package syscall pour convertir l'erreur en un type *exec.ExitError, permettant l'accès au code de sortie.
Exploration de la documentation
La référence à la documentation de l'API du package os/exec peut fournir des informations supplémentaires dans ce sujet.
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!