BASH-Programmierung

Bash-Exit-Code des letzten Befehls

Bash-Exit-Code des letzten Befehls
Wenn ein Bash-Befehl ausgeführt wird, hinterlässt er den Exit-Code, unabhängig von erfolgreicher oder nicht erfolgreicher Ausführung. Die Untersuchung des Exit-Codes kann nützliche Einblicke in das Verhalten des zuletzt ausgeführten Befehls geben.

In diesem Handbuch erfahren Sie, wie Sie den Bash-Exit-Code des letzten Befehls und einige mögliche Verwendungen davon überprüfen.

Bash-Exit-Code

Jeder vom Shell-Skript oder Benutzer ausgeführte UNIX/Linux-Befehl hinterlässt einen Exit-Status. Es ist eine ganze Zahl, die unverändert bleibt, bis der nächste Befehl ausgeführt wird. Wenn der Exitcode 0 ist, war der Befehl erfolgreich. Wenn der Exit-Code ungleich Null ist (1-255), bedeutet dies einen Fehler.

Es gibt viele mögliche Verwendungen des Bash-Exit-Codes. Am offensichtlichsten ist es natürlich zu überprüfen, ob der letzte Befehl korrekt ausgeführt wurde, insbesondere wenn der Befehl keine Ausgabe erzeugt.

Im Fall von bash ist der Exit-Code des vorherigen Befehls über die Shell-Variable „$?”.

Bash-Exit-Code prüfen

Starten Sie ein Terminal und führen Sie einen beliebigen Befehl aus.

$ Datum

Überprüfen Sie den Wert der Shell-Variablen „$?” für den Exit-Code.

$ echo $?

Da der Befehl „date“ erfolgreich ausgeführt wurde, lautet der Exit-Code 0. Was passiert bei einem Fehler?

Lassen Sie uns versuchen, einen Befehl auszuführen, der nicht existiert.

$ abcd

Überprüfen Sie den Exit-Code.

$ echo $?

Es ist ein Wert ungleich Null, der anzeigt, dass der vorherige Befehl nicht richtig ausgeführt wurde.

Sehen Sie sich nun den folgenden Befehl an:

$ Katzenprobe.txt | grep "Münze"

Wenn Sie mit einem Befehl arbeiten, der eine oder mehrere Pipes hat, ist der Exit-Code der letzte Code, der in der Pipe ausgeführt wurde. In diesem Fall ist es der grep-Befehl.

Da der grep-Befehl erfolgreich war, ist er 0.

$ echo $?

Wenn in diesem Beispiel der Befehl grep fehlschlägt, ist der Exit-Code ungleich Nullzer.

$ Katzenprobe.txt | grep "abcd"
$ echo $?

Exit-Code in Skripte einbinden

Der Exit-Code kann auch für Scripting verwendet werden. Eine einfache Möglichkeit, es zu verwenden, besteht darin, es einer Shell-Variablen zuzuweisen und damit zu arbeiten. Hier ist ein Beispiel-Shell-Skript, das den Exit-Code als Bedingung verwendet, um eine bestimmte Ausgabe zu drucken.

$ #!/bin/bash
$ echo "Hallo Welt"
$status=$?
$ [ $status -eq 0 ] && echo "Befehl erfolgreich" || echo "Befehl fehlgeschlagen"

Bei der Ausführung generiert das Skript die folgende Ausgabe.

Sehen wir uns nun an, was passiert, wenn ein ungültiger Befehl ausgeführt werden muss.

$ #!/bin/bash
$ Random-Befehl
$status=$?
$ [ $status -eq 0 ] && echo "Befehl erfolgreich" || echo "Befehl fehlgeschlagen"

Beim Ausführen wird die Ausgabe unterschiedlich sein.

Erklärung des Exit-Code-Werts

Wenn der Exit-Code ungleich Null ist, reicht der Wert von 1 bis 255. Was bedeutet dieser Wert nun??

Während der Wert begrenzt ist, ist die Erklärung jedes Wertes für das Programm/Skript einzigartig. Zum Beispiel haben „ls“ und „grep“ unterschiedliche Erklärungen für Fehlercode 1 und 2 and.

$ Mann ls

$ man grep

Exit-Status im Skript definieren

Beim Schreiben eines Skripts können wir benutzerdefinierte Exit-Codewerte definieren define. Es ist eine nützliche Methode zum einfacheren Debuggen. In Bash-Skripten ist dies der Befehl „exit“ gefolgt vom Exit-Code-Wert.

$ beenden

Gemäß der Konvention wird empfohlen, den Exit-Code 0 für eine erfolgreiche Ausführung zuzuweisen und den Rest (1-255) für mögliche Fehler zu verwenden. Wenn Sie den Exit-Befehl erreichen, wird die Ausführung des Shell-Skripts beendet, achten Sie also auf seine Platzierung.

Schauen Sie sich das folgende Shell-Skript an. Hier, wenn die Bedingung erfüllt ist, wird das Skript mit dem Exit-Code 0 beendet. Wenn die Bedingung nicht erfüllt ist, lautet der Exit-Code 1.

$ #!/bin/bash
$ if [[ "$(whoami)" != Wurzel ]]; dann
$ echo "Kein Root-Benutzer."
$ Ausfahrt 1
$ fi
$ echo "root-Benutzer"
$ beenden 0

Überprüfen Sie das Ergebnis der Ausführung dieses Skripts ohne sudo-Berechtigung oder „root“-Benutzer.

$ ./Stichprobe.Sch
$ echo $?

Abschließende Gedanken

Diese Anleitung zeigt, was Exit-Codes sind und wie Sie sie verwenden können. Es zeigt auch, wie man einem Bash-Skript entsprechende Exit-Codes zuweist.

Interessiert an Bash-Scripting? Eine der einfachsten Möglichkeiten für den Einstieg besteht darin, eigene Skripte zu schreiben. Sehen Sie sich diese einfache Anleitung zum Schreiben eines einfachen Bash-Skripts an.

Viel Spaß beim Rechnen!

Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...
Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...