GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash Shell Exit Status Tutorial mit praktischen Beispielen

In unserem Bash-Einführungsartikel haben wir gelernt, dass eine Shell-Skriptdatei eine Liste von Befehlen enthält, die vom Shell-Interpreter ausgeführt werden sollen. Lassen Sie uns in diesem Artikel einen Rückblick auf Shell-Befehle und ihre Interna geben.

Ein Befehl ist eine Folge von Wörtern. Das erste Wort gibt den auszuführenden Befehl an und die restlichen Wörter werden als Argumente übergeben, wobei Argumente die Optionen oder Parameter des Befehls sein können.

Einige der gebräuchlichen Unix-Befehle, die Sie auf der Befehlszeile ausführen sind Shell-Befehle. Zum Beispiel die Befehle ls, lpr und grep.

$ ls -alF

$ lpr filename

$ grep "string" filename

Shell-Befehlsausgangsstatus

Der Rückgabewert eines Befehls ist sein Exit-Status oder 128 + N, wenn der Befehl durch das Signal N beendet wird. Der Exit-Status wird verwendet, um das Ergebnis (Erfolg/Fehler) der Ausführung des Befehls zu überprüfen. Wenn der Exit-Status Null ist, ist der Befehl erfolgreich. Wenn der Befehl fehlschlägt, ist der Exit-Status ungleich Null.

Ausgangswert Exit-Status
0 (Null) Erfolg
Nicht null Fehler
2 Falsche Verwendung
127 Befehl nicht gefunden
126 Keine ausführbare Datei

$? Shell-Variable

Der Shell-Variablenname $? ist eine spezielle eingebaute Variable, die den Exit-Status des zuletzt ausgeführten Befehls enthält.

  • Nach der Ausführung der Shell-Funktion wird $? gibt den Exit-Status des letzten in einer Funktion ausgeführten Befehls zurück.
  • Nach der Ausführung des Shell-Skripts wird $? gibt den Exit-Status des letzten im Skript ausgeführten Befehls zurück.

Beispiel-Shell-Skript, das den Exit-Status von Shell-Befehlen erklärt

Das folgende Shell-Skript exitstatus.sh zeigt Beispiele für verschiedene Exit-Status von Shell-Befehlen.

$ cat exitstatus.sh
#! /bin/bash

echo -e "Successful execution"
echo -e "====================="
echo "hello world"
# Exit status returns 0, because the above command is a success.
echo "Exit status" $? 

echo -e "Incorrect usage"
echo -e "====================="
ls --option
# Incorrect usage, so exit status will be 2.
echo "Exit status" $? 

echo -e "Command Not found"
echo -e "====================="
bashscript
# Exit status returns 127, because bashscript command not found
echo "Exit status" $? 

echo -e "Command is not an executable"
echo -e "============================="
ls -l execution.sh
./execution.sh
# Exit status returns 126, because its not an executable.
echo "Exit status" $?

Führen Sie nun die obige Datei exitstatus.sh aus, um die verschiedenen Exit-Statuen anzuzeigen, die vom Beispiel-Shell-Skript angegeben werden.

$ bash exitstatus.sh
Successful execution
=====================
hello world
Exit status 0
Incorrect usage
=====================
ls: unrecognized option `--option'
Try `ls --help' for more information.
Exit status 2
Command Not found
=====================
exitstaus.sh: line 15: bashscript: command not found
Exit status 127
Command is not an executable
=============================
-rw-r--r-- 1 root root 659 Mar  9 13:36 execution.sh
exitstatus.sh: line 21: ./execution.sh: Permission denied
Exit status 126

Hinweis:Die Überprüfung des Rückgabewerts einer Funktion oder eines Befehls gehört zu den Hauptaufgaben eines Programmierers. Dies sollte zu Ihrer zweiten Natur werden, wenn Sie Code schreiben.


Linux
  1. vim Tutorial mit Befehlsbeispielen

  2. 15 nützliche integrierte Bash Shell-Befehle (mit Beispielen)

  3. Linux-rsync-Befehl mit praktischen Beispielen

  4. Echo-Befehl mit praktischen Beispielen

  5. '&&' vs. '&' mit dem 'test'-Befehl in Bash

Bash-Scripting – Printf-Befehl mit Beispielen erklärt

Wait-Befehl in Linux mit praktischen Beispielen erklärt

Tutorial für Linux-Suchbefehle (mit Beispielen)

Bash Scripting Einführungstutorial mit 5 praktischen Beispielen

Das ultimative Tar Command Tutorial mit 10 praktischen Beispielen

Tutorial zu Bash-Shell-Funktionen mit 6 praktischen Beispielen