„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum gibt mein Golang „exec.Command“ „Exit Status 1“ zurück?

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

Veröffentlicht am 17.11.2024
Durchsuche:644

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 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.

Neuestes Tutorial Mehr>

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