Bash -Fehler beim Fehler beenden

Bash -Fehler beim Fehler beenden
Ein Exit -Status -Code wird zurückgegeben, wenn ein Linux -Befehl aus dem Terminal ausgeführt wird. Der Befehl ist entweder erfolgreich oder erfolglos. Dieser Statuscode kann verwendet werden, um die Fehlermeldung für eine erfolglose Ausführung anzuzeigen oder eine bestimmte Aufgabe durch das Shell -Skript auszuführen. Der Exit -Statuscode repräsentiert immer eine Nummer. Der Wert dieses Codes beträgt 0 für die erfolgreiche Ausführung eines Linux -Befehls und gibt eine beliebige Zahl von 1 bis 255 für die erfolglose Ausführung des Befehls zurück. Wie der existierende Statuscode aus dem Terminal und im Bash -Skript verwendet werden kann, werden in diesem Tutorial angezeigt.

Einige gemeinsame Fehlerstatuscodes werden unten erwähnt.

Code Beschreibung Kommentare
0 Es zeigt eine erfolgreiche Ausführung an.
1 Es wird verwendet, um alle allgemeinen Fehler zu fangen. "Divide durch null", "nicht zulässig" usw. Kann die Fehlermeldungen dieses Codes sein.
2 Es zeigt den Missbrauch von Shell-integrierten Ins an. "Fehlender Schlüsselwort", "Keine solche Datei oder Verzeichnis" usw. Kann die Fehlermeldungen dieses Codes sein.
126 Es generiert, wenn der Befehl keine Ausführung nicht ausführen kann. Berechtigungsproblem oder der erforderliche Schlüssel nicht verfügbar können diesen Statuscode generieren
127 Es generiert normalerweise das Problem des Befehlspfads. "Befehl nicht gefunden" kann die Nachricht für diesen Fehlercode sein.
130 Es erzeugt einen tödlichen Fehler. "Skript, das von Strg+C gekündigt wurde" kann die Nachricht dieses Codes sein.
255* Es zeigt den Ausgangscode außerhalb des Bereichs an.

Beispiel-1: Lesen des Exit-Code aus dem Terminal

'$?'Shell -Variable kann verwendet werden, um den Ausgangscode eines beliebigen Befehls anzuzeigen. 'ls -la' ist ein gültiger Befehl und zeigt die Liste der Dateien und Ordner des aktuellen Arbeitsverzeichnisses an. Der Wert von '$?"wird 0 sein, nachdem der Befehl 'ls -la' ausgeführt wird. 'ls -xyz' ist ein ungültiger Befehl und '$?Gibt 2 als Fehlercode zurück, nachdem der Befehl ausgeführt wurde.

$ ls -la
$ echo $?
$ ls -xyz
$ echo $?

Beispiel-2: Lesen des Beenden Code im Bash-Skript

Erstellen Sie eine Bash -Datei mit dem Namen Read_file.Sch mit dem folgenden Skript. In diesem Skript wird der Dateiname als Eingabe des Benutzers angenommen und die Gesamtzahl der Zeilen, Wörter und Zeichen dieser Datei wird mit dem Befehl 'WC' gezählt. Wenn der Dateiname gültig ist, beträgt der Wert von $ status_code 0 und wenn der Dateiname ungültig ist, dann beträgt der Wert von $ status_code 1 1.

Read_file.Sch

#!/Bin/Bash
Echo "den Dateinamen eingeben"
Lesen Sie den Dateinamen
WC -LWC $ Dateiname
status_code = $?
Echo "Der Beenden des 'WC' -Befehls lautet: $ STATUS_CODE"

Beispiel-3: Verwenden Sie den Wert des Exit-Code-Werts für eine bestimmte Aufgabe

Erstellen Sie eine Bash -Datei mit dem Namen read_month.Sch mit dem folgenden Code. Hier wird ein Datumswert als Eingabe angenommen. Der Name des Monats ruft vom Datumswert ab. Wenn im Skript die Bedingung verwendet wird, um den Bezug -Statuscode des Datumsbefehls zu überprüfen. Wenn die Bedingung zutrifft, wird die Erfolgsnachricht und der Monat des Datums des Datums gedruckt. Wenn die Bedingung falsch ist, wird die Fehlermeldung und der Statuscode für den Ausgangsmeldung und der Beendigung des Status 1 gedruckt.

read_month.Sch

#!/Bin/Bash
Echo "Geben Sie ein Datum im Format ein: yyyy-mm-dd"
Lesen Sie DATE_VALUE
current_month = $ (Datum -d "$ date_value" '+%b')
Wenn [$? -Gl. 0]
Dann
Echo "Datumsbefehl wird erfolgreich ausgeführt"
Echo "Current Month ist $ current_month"
anders
Echo "Datumsbefehl wird nicht erfolgreich ausgeführt"
Ausgang 1
fi

Führen Sie das Skript aus.

$ bash read_month.Sch

Beispiel-4: Verwenden Sie && und || mit dem Ausgangscode

'&&' logischer Operator wird für einen erfolgreichen Exit -Code und '||' verwendet Der logische Operator wird für den erfolglosen Exit -Code verwendet. Der folgende Befehl druckt "Datei existiert", wenn Buch.txt Die Datei gibt Buch.txt Datei gibt es nicht am aktuellen Ort.

$ Cat Book.txt && echo "Datei existiert" || echo "Datei nicht existiert"

Abschluss:

In diesem Tutorial werden verschiedene Verwendungen des Exit -Statuscodes angezeigt. Hoffe, der Leser erhält nach dem Lesen dieses Tutorials ein klares Konzept über den Bash -Code des Exit -Status von Bash.