Überprüfen Sie den Exit-Code in Bash

Muhammad Husnain 8 Oktober 2023
Überprüfen Sie den Exit-Code in Bash

Dieses Tutorial beschreibt mehrere Methoden zum Abrufen und Anzeigen des Exit-Status einer Anweisung in Bash. Wir werden zuerst die Verwendung einer einfachen if-Anweisung zum Abrufen des Ausgangsstatus besprechen, danach werden wir Alternativen und Kurzschreibweisen zum Abrufen des Ausgangsstatus besprechen.

Überprüfen Sie den Exit-Code in Bash

Der Exit-Status ist im Wesentlichen eine Ganzzahl, die uns sagt, ob der Befehl erfolgreich war oder nicht. Nicht intuitiv zeigt ein Exit-Status von 0 einen Erfolg an, und jeder Wert ungleich Null zeigt einen Fehler/Fehler an.

Diese nicht intuitive Lösung ermöglicht unterschiedliche Fehlercodes, um unterschiedliche Fehler darzustellen. Wenn beispielsweise ein Befehl nicht gefunden wird, wird der Exit-Status 127 zurückgegeben.

Der Weg, um den Exit-Code in Bash zu überprüfen, ist die Verwendung des $? Befehl. Wenn Sie den Exit-Status ausgeben möchten, können Sie dies tun durch:

# your command here
testVal=$?
echo testVal

Wir wissen, dass Exit-Codes ungleich Null verwendet werden, um Fehler zu melden. Wenn wir allgemein nach Fehlern suchen wollen, können wir ein kleines Skript mit dem betreffenden Befehl und einer if-Anweisung schreiben, die prüft, ob der Exit-Code einen Fehler (nicht Null) enthält oder ob der Exit-Code eine ordnungsgemäße Ausführung anzeigt .

# your command here
testVal=$?
if [$testVal -ne 0]; then
    echo "There was some error"
fi
exit $testVal

Eine Kurzschreibweise kann mit einem test auf dem $? Befehl. Ein minimales Beispiel für diesen Code kann sein:

# your command here
test $? -eq 0 || echo "There was some error"

Zum besseren Verständnis der obigen Aussage können wir sie erweitern.

# your command here
exitStat = $?
test $exitStat -eq 0 && echo "No error! Worked fine" || echo "There was some error";
exit $exitStat

Oben sehen wir die Meldung "No error! Worked fine" im Falle einer erfolgreichen Ausführung und die Fehlermeldung im Falle eines Fehlers.

Wichtige Hinweise und mögliche Alternativlösungen

Wenn Exit-Codes verwendet werden, um zu sehen, ob der Befehl korrekt ausgeführt wird oder nicht, haben wir eine viel einfachere Alternative.

# define your_command here
# your_command = enter a command here
if your_command; then
    echo command returned true
else
    echo command returned an error
fi

In diesem Fall erhalten wir im Allgemeinen die gleiche Ausgabe wie bei den ersten paar Optionen. Darüber hinaus erfordert das Abrufen spezifischer Informationen über den Exit-Code oder das Abrufen des spezifischen Exit-Codes das Ausführen von $? manuell.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

Verwandter Artikel - Bash Exit