Heim >Backend-Entwicklung >Golang >Wie kann ich den Exit-Code eines externen Befehls in Go abrufen?

Wie kann ich den Exit-Code eines externen Befehls in Go abrufen?

Susan Sarandon
Susan SarandonOriginal
2024-12-28 04:34:09229Durchsuche

How Can I Retrieve the Exit Code of an External Command in Go?

So rufen Sie den Exit-Code in Go ab

Bei der Verwendung des OS/Exec-Pakets zum Ausführen von Befehlen im Betriebssystem stoßen Benutzer häufig auf Schwierigkeiten Abrufen des Exit-Codes. Während das Lesen der Ausgabe durch Erfassen der Standardausgabe möglich ist, bleibt das Erhalten des Exit-Codes eine Herausforderung.

Lösung:

Die Bestimmung, ob der Exit-Code 0 ist oder nicht kann durch cmd.Wait() erreicht werden, das im Falle eines erfolgreichen Exits Null zurückgibt. Wenn der Exit-Code jedoch ungleich Null ist, kann es schwieriger werden, ihn zu erhalten. Dies liegt an der plattformabhängigen Natur des Exit-Code-Abrufs.

Plattformspezifischer Ansatz für Linux:

Obwohl es keinen plattformübergreifenden Ansatz zum Abrufen des Exits gibt Codes kann das folgende Snippet auf Linux-Systemen verwendet werden:

import "syscall"

if err := cmd.Start(); err != nil {
    log.Fatalf("cmd.Start: %v", err)
}

if err := cmd.Wait(); err != nil {
    if exiterr, ok := err.(*exec.ExitError); ok {
        log.Printf("Exit Status: %d", exiterr.ExitCode())
    } else {
        log.Fatalf("cmd.Wait: %v", err)
    }
}

Diese Methode ermöglicht die Abrufen von Exit-Codes speziell für Linux-Systeme. Es ist jedoch wichtig zu beachten, dass dieser Ansatz möglicherweise nicht universell anwendbar ist.

Zusätzliche Ressourcen:

Weitere Informationen zur Behandlung von Exit-Codes in Go finden Sie im Paketdokumentation:

[os/exec – Prozessmanagement](https://golang.org/pkg/os/exec/)

Das obige ist der detaillierte Inhalt vonWie kann ich den Exit-Code eines externen Befehls in Go abrufen?. 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