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 ist die Ausgabe wird 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 stderr dies normalerweise anzeigt Bei Fehlern geben einige Befehle Fehler in stdout oder in stderr aus, ohne einen Fehlercode zurückzugeben. Daher kann es erforderlich sein, Ihren Code an bestimmte Befehle anzupassen.
Das obige ist der detaillierte Inhalt vonWarum gibt mein Golang „exec.Command' „Exit Status 1' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!