Lors de l'utilisation de exec.Command dans Golang, la rencontre de l'erreur énigmatique « état de sortie 1 » laisse une égratignure leur tête pour les détails. Cet article vise à éclairer la cause de cette erreur et à fournir une solution pour des diagnostics plus détaillés.
Considérez le code suivant :
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\") var out bytes.Buffer cmd.Stdout = &out err := cmd.Run()
L'exécution de ce code entraîne l'erreur non informative « état de sortie 1 » . Pour remédier à cela, exploitez la propriété Stderr de l'objet Command :
var stderr bytes.Buffer cmd.Stderr = &stderr
Lors de l'exécution, le message d'erreur deviendra apparent :
exit status 1: find: -exec: no terminating ";" or "+"
Maintenant, équipé de cette erreur détaillée, vous peut résoudre le problème en conséquence.
Remarque : Il convient de considérer que certaines commandes peuvent rediriger les messages d'erreur vers la sortie standard plutôt que vers la sortie standard. que stderr. De plus, certaines commandes peuvent imprimer des messages d'erreur sur stderr mais renvoyer quand même un code d'erreur nul (entraînant une erreur nulle dans votre code). Par conséquent, il peut être nécessaire d'ajuster la solution donnée pour s'adapter aux commandes spécifiques que vous utilisez.
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!