In diesem Handbuch finden Sie in der Überprüfung des Bash -Exit -Code des letzten Befehls und einigen möglichen Verwendungen davon können Sie.
Bash -Ausgangscode
Jeder von dem Shell -Skript oder Benutzern ausgeführte Befehl unix/linux hinterlässt einen Exit -Status. Es ist eine ganzzahlige Nummer, die unverändert bleibt, es sei denn, der nächste Befehl wird ausgeführt. Wenn der Ausgangscode 0 ist, war der Befehl erfolgreich erfolgreich. Wenn der Ausgangscode ungleich Null (1-255) ist, bedeutet er einen Fehler.
Es gibt viele potenzielle Verwendungen des Bash -Exit -Code. Am offensichtlichsten ist natürlich zu überprüfen, ob der letzte Befehl ordnungsgemäß ausgeführt wird, insbesondere wenn der Befehl keine Ausgabe generiert.
Im Fall von BASH ist der Exit -Code des vorherigen Befehls mithilfe der Shell -Variablen „$ zugegriffen“ zugänglich?”.
Überprüfen Sie den Bash -Exit -Code
Starten Sie ein Terminal und führen Sie einen beliebigen Befehl aus.
$ Datum
Überprüfen Sie den Wert der Shell -Variablen „$?”Für den Ausgangscode.
$ echo $?
Da der Befehl „Datum“ erfolgreich ausgeführt wurde, ist der Exit -Code 0. Was würde passieren, wenn es einen Fehler gäbe?
Versuchen wir, einen Befehl auszuführen, der es nicht gibt.
$ ABCD
Überprüfen Sie den Ausgangscode.
$ echo $?
Es ist ein Wert ungleich Null, der angibt, dass der vorherige Befehl nicht ordnungsgemäß ausgeführt wurde.
Schauen Sie sich nun den folgenden Befehl an:
$ CAT -Probe.txt | Grep "Münze"
Wenn Sie mit einem Befehl mit einem oder mehreren Rohren arbeiten. In diesem Fall ist es der Grep -Befehl.
Da der Grep -Befehl erfolgreich war, wird es 0 sein.
$ echo $?
Wenn der Befehl Grep fehlschlägt, ist der Ausgangscode ungleich Null, wenn der GREP-Befehl fehlschlägt.
$ CAT -Probe.txt | Grep "ABCD"
$ echo $?
Integration von Exit -Code in Skripte einbeziehen
Der Exit -Code kann auch zum Skript verwendet werden. Eine einfache Möglichkeit, es zu verwenden, besteht darin, es einer Shell -Variablen zugewiesen und damit zu arbeiten. Hier ist ein Beispiel -Shell -Skript, das den Exit -Code als Bedingung zum Drucken spezifischer Ausgabe verwendet.
$ #!/Bin/Bash
$ echo "Hallo Welt"
$ status = $?
$ [$ status -eq 0] && echo "Befehl erfolgreich" || Echo "Befehl erfolglos"
Bei der Ausführung erzeugt das Skript die folgende Ausgabe.
Lassen Sie uns nun sehen, was passiert, wenn ein ungültiger Befehl ausgeführt wird.
$ #!/Bin/Bash
$ random-command
$ status = $?
$ [$ status -eq 0] && echo "Befehl erfolgreich" || Echo "Befehl erfolglos"
Beim Ausführen ist die Ausgabe unterschiedlich.
Beenden Sie den Code -Wert Erläuterung
Wenn der Exit-Code ungleich Null ist, liegt der Wert von 1 bis 255. Was bedeutet dieser Wert nun??
Während der Wert begrenzt ist, ist die Erläuterung jedes Wertes für das Programm/das Skript nur eindeutig. Zum Beispiel haben „LS“ und „Grep“ unterschiedliche Erklärungen für den Fehlercode 1 und 2.
$ MAN LS
$ MAN GREP
Definieren von Exit -Status im Skript
Beim Schreiben eines Skripts können wir benutzerdefinierte Exit -Codewerte definieren. Es ist eine nützliche Methode zum einfacheren Debuggen. In Bash -Skripten handelt es sich um den Befehl "Exit", gefolgt vom Bezugscodewert,.
$ Exit
Gemäß der Konvent. Wenn Sie den Befehl zum Beenden erreichen.
Schauen Sie sich das folgende Shell -Skript an. Wenn die Bedingung erfüllt ist, endet das Skript mit dem Exit -Code 0. Wenn die Bedingung nicht erfüllt ist, beträgt der Exit -Code 1.
$ #!/Bin/Bash
$ wenn [["$ (whoami)" != root]]; Dann
$ echo "Nicht Root -Benutzer."
$ Exit 1
$ fi
$ echo "Root -Benutzer"
$ Exit 0
Überprüfen Sie das Ergebnis des Ausführens dieses Skripts ohne Sudo -Privileg oder "Root" -Nutzer.
$ ./Probe.Sch
$ echo $?
Abschließende Gedanken
Dieser Leitfaden zeigt, welche Exit -Codes sind und wie Sie sie verwenden können. Es zeigt auch, wie Sie geeignete Exit -Codes in einem Bash -Skript zuweisen.
Interessiert an Bash Scripting? Eine der einfachsten Möglichkeiten, um loszulegen, besteht darin, Ihre eigenen Skripte zu schreiben. Schauen Sie sich diese einfache Anleitung zum Schreiben eines einfachen Bash -Skripts an.
Happy Computing!