Heim >Backend-Entwicklung >Golang >Warum gibt mein Golang „exec.Command' „Exit Status 1' zurück?

Warum gibt mein Golang „exec.Command' „Exit Status 1' zurück?

Susan Sarandon
Susan SarandonOriginal
2024-11-24 04:45:19195Durchsuche

Why Does My Golang `exec.Command` Return

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn