Abrufen des Exit-Codes in Go
Das Ausführen von Befehlen auf dem Betriebssystem mithilfe des os/exec-Pakets bietet eine bequeme Möglichkeit, mit externen Systemen zu interagieren Prozesse. Allerdings kann es zunächst eine Herausforderung sein, den Exit-Code eines ausgeführten Befehls zu erhalten.
Um dieses Problem zu lösen, besteht ein Ansatz darin, zu überwachen, ob die Funktion cmd.Wait() Null zurückgibt, was auf einen Exit-Code von hinweist 0. Der Zugriff auf den spezifischen Exit-Code im Fehlerfall kann jedoch komplexer sein.
Plattformspezifischer Exit-Code Abruf
Leider gibt es keinen plattformübergreifenden Mechanismus, um den Exit-Code für Fehlerfälle abzurufen. Die folgende Problemumgehung richtet sich speziell an Linux-Systeme:
import ( "os/exec" "log" "syscall" ) func main() { cmd := exec.Command("git", "blub") 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) } } }
Dieser Ansatz nutzt das Syscall-Paket, um den Fehler in einen *exec.ExitError-Typ umzuwandeln und so den Zugriff auf den Exit-Code zu ermöglichen.
Erkundung der Dokumentation
Ein Verweis auf die API-Dokumentation des os/exec-Pakets kann weitere Erkenntnisse liefern in dieses Thema.
Das obige ist der detaillierte Inhalt vonWie rufe ich den Exit-Code eines ausgeführten Befehls in Go ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!