Heim > Backend-Entwicklung > Golang > Wie rufe ich den Exit-Code eines ausgeführten Befehls in Go ab?

Wie rufe ich den Exit-Code eines ausgeführten Befehls in Go ab?

Patricia Arquette
Freigeben: 2024-12-16 19:18:13
Original
497 Leute haben es durchsucht

How to Retrieve the Exit Code of an Executed Command in Go?

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)
        }
    }
}
Nach dem Login kopieren

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!

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