So ermitteln Sie die Ursache des „Exit Status 1“-Fehlers in Golangs exec.Command
Beim Ausführen der exec.Command-Methode in Golang , kann der Empfang einer Fehlermeldung „Exit-Status 1“ frustrierend vage sein. Das Fehlen spezifischer Informationen behindert ein effektives Debugging.
Um detailliertere Informationen abzurufen, nutzen Sie die Stderr-Eigenschaft des Command-Objekts. Dies wird erreicht durch:
var out bytes.Buffer var stderr bytes.Buffer cmd.Stdout = &out cmd.Stderr = &stderr err := cmd.Run()
Durch die Umleitung von Fehlern in den stderr-Puffer können Sie im Falle eines Befehlsfehlers darauf zugreifen.
if err != nil { fmt.Println(fmt.Sprint(err) ": " stderr.String()) return }
In einigen Fällen wird die Ausgabe sowohl in stdout als auch in stderr angezeigt. Wenn der Befehl einen Fehlercode ungleich Null zurückgibt, wie im folgenden Beispiel:
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\")
Die Fehlermeldung lautet:
exit status 1: find: -exec: no terminating ";" or " "
Es ist wichtig zu beachten, dass, obwohl stderr normalerweise Fehler anzeigt, einige Befehle Fehler in stdout oder in stderr ausgeben, ohne einen Fehlercode zurückzugeben. Daher kann es erforderlich sein, Ihren Code an bestimmte Befehle anzupassen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3