Heim > Backend-Entwicklung > Golang > Wie debugge ich „Exit-Status 1'-Fehler in Golangs exec.Command?

Wie debugge ich „Exit-Status 1'-Fehler in Golangs exec.Command?

Linda Hamilton
Freigeben: 2024-12-04 06:40:15
Original
710 Leute haben es durchsucht

How to Debug

Debugging-Fehler „Exit-Status 1“ in Golangs exec.Command

Beim Ausführen von exec.Command in Golang tritt ein „Exit-Status 1“ auf „Fehler können ohne detaillierte Informationen frustrierend sein. Glücklicherweise gibt es eine Lösung, um die zugrunde liegende Ursache aufzudecken.

Lösung:

Verwenden Sie die Stderr-Eigenschaft des Command-Objekts. Diese Eigenschaft erfasst die vom Befehl generierte Standardfehlerausgabe. Hier ist eine modifizierte Version des Codeausschnitts:

import (
    "bytes"
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\")
    var out bytes.Buffer
    var stderr bytes.Buffer
    cmd.Stdout = &out
    cmd.Stderr = &stderr
    err := cmd.Run()
    if err != nil {
        fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
        return
    }
    fmt.Println("Result: " + out.String())
}
Nach dem Login kopieren

Erklärung:

Durch Zuweisen der Stderr-Eigenschaft zu einem Puffer (stderr) werden alle von der erzeugten Fehlermeldungen gelöscht Der Befehl wird erfasst und an den Puffer angehängt. Wenn der Befehl mit einem Exit-Code ungleich Null beendet wird, werden die Fehler- und stderr-Ausgabe ausgegeben, was mehr Kontext für das Debuggen bereitstellt.

Hinweis:

Einige Befehle können Geben Sie Fehler auf stdout statt auf stderr aus oder geben Sie den Fehlercode 0 mit Meldungen in stderr zurück. Daher sollte das Verhalten jedes Befehls bei der Anpassung dieser Lösung berücksichtigt werden.

Das obige ist der detaillierte Inhalt vonWie debugge ich „Exit-Status 1'-Fehler in Golangs exec.Command?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage