Bash-Fehlerbehandlung

Die Fehlerbehandlung ist ein sehr wichtiger Bestandteil jeder Programmiersprache. Bash hat keine bessere Möglichkeit als andere Programmiersprachen, mit dem Fehler des Skripts umzugehen. Es ist jedoch wichtig, das Bash-Skript zum Zeitpunkt der Ausführung des Skripts vom Terminal aus fehlerfrei zu machen. Die Fehlerbehandlungsfunktion kann für das Bash-Skript auf verschiedene Arten implementiert werden. In diesem Tutorial werden die verschiedenen Techniken zur Behandlung der Fehler im Bash-Skript gezeigt.

Beispiel 1: Fehlerbehandlung mithilfe einer bedingten Anweisung

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die Verwendung der bedingten Anweisung zur Fehlerbehandlung zeigt. Die erste „if“-Anweisung wird verwendet, um die Gesamtzahl der Befehlszeilenargumente zu überprüfen und eine Fehlermeldung auszugeben, wenn der Wert kleiner als 2 ist. Als nächstes werden die Dividenden- und Divisorwerte aus den Befehlszeilenargumenten übernommen. Wenn der Divisorwert gleich 0 ist, wird ein Fehler generiert und die Fehlermeldung wird in der Datei error.txt gedruckt. Mit dem zweiten „if“-Befehl wird überprüft, ob die Datei error.txt leer ist oder nicht. Wenn die Datei „error.txt“ nicht leer ist, wird eine Fehlermeldung ausgegeben.

#!/bin/bash
#Überprüfen Sie die Argumentwerte
Wenn [ $# -lt 2 ]; Dann
echo „Ein oder mehrere Argumente fehlen.“
Ausfahrt
fi
#Lesen Sie den Dividendenwert aus dem ersten Befehlszeilenargument
Dividende = 1 $
#Lesen Sie den Divisorwert aus dem zweiten Befehlszeilenargument
Teiler=$2
#Dividende durch den Divisor dividieren
result=`echo „scale=2; $dividend/$divisor“|bc 2>error.txt`
#Lesen Sie den Inhalt der Fehlerdatei
content=`cat error.txt`
Wenn [ -n „$content“ ]; Dann
#Drucken Sie die Fehlermeldung aus, wenn die Datei „error.txt“ nicht leer ist
echo „Durch Null teilbarer Fehler ist aufgetreten.“
anders
#Drucken Sie das Ergebnis aus
echo „$dividend/$divisor = $result“

Ausgabe:

Nach der Ausführung des vorherigen Skripts ohne Argument erscheint die folgende Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts mit einem Argumentwert:

Nach der Ausführung des vorherigen Skripts mit zwei gültigen Argumentwerten erscheint die folgende Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts mit zwei Argumentwerten, wobei das zweite Argument 0 ist. Die Fehlermeldung wird gedruckt:

Beispiel 2: Fehlerbehandlung mithilfe des Exit-Statuscodes

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die Verwendung der Bash-Fehlerbehandlung anhand des Exit-Statuscodes zeigt. Jeder Bash-Befehl wird als Eingabewert verwendet und dieser Befehl wird später ausgeführt. Wenn der Exit-Statuscode ungleich Null ist, wird eine Fehlermeldung gedruckt. Andernfalls wird eine Erfolgsmeldung gedruckt.

#!/bin/bash

#Nehmen Sie einen Linux-Befehlsnamen
echo -n „Geben Sie einen Befehl ein:“
cmd_name lesen
#Führen Sie den Befehl aus
$cmd_name
#Überprüfen Sie, ob der Befehl gültig oder ungültig ist
Wenn [ $? -ne 0 ]; Dann
echo „$cmd_name ist ein ungültiger Befehl.“
anders
echo „$cmd_name ist ein gültiger Befehl.“
fi

fi

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts mit dem gültigen Befehl. Dabei wird das „Datum“ als Befehl im Eingabewert übernommen, der gültig ist:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts für den ungültigen Befehl. Hier wird „cmd“ als Befehl im Eingabewert übernommen, der ungültig ist:

Beispiel 3: Stoppen Sie die Ausführung beim ersten Fehler

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die Methode zum Stoppen der Ausführung zeigt, wenn der erste Fehler des Skripts auftritt. Im folgenden Skript werden zwei ungültige Befehle verwendet. Es werden also zwei Fehler generiert. Das Skript stoppt die Ausführung, nachdem der erste ungültige Befehl mit dem Befehl „set –e“ ausgeführt wurde.

#!/bin/bash
#Legen Sie die Option fest, das Skript beim ersten Fehler zu beenden
set -e
echo ‚Aktuelles Datum und aktuelle Uhrzeit:‘
#Gültiger Befehl
Datum
echo ‚Aktuelles Arbeitsverzeichnis: ‚
#Ungültiger Befehl
cwd
echo ‚Login-Benutzername: ‚
#Gültiger Befehl
Wer bin ich
echo ‚Liste der Dateien und Ordner:‘
#Ungültiger Befehl
Liste

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts. Das Skript stoppt die Ausführung, nachdem der ungültige Befehl „cwd“ ausgeführt wurde:

Beispiel 4: Stoppen Sie die Ausführung für eine nicht initialisierte Variable

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die Methode zum Stoppen der Ausführung des Skripts für die nicht initialisierte Variable zeigt. Die Werte für Benutzername und Passwort werden den Werten der Befehlszeilenargumente entnommen. Wenn einer der Werte dieser Variablen nicht initialisiert ist, wird eine Fehlermeldung ausgegeben. Wenn beide Variablen initialisiert sind, prüft das Skript, ob Benutzername und Passwort gültig oder ungültig sind.

#!/bin/bash
#Legen Sie die Option fest, um das Skript für eine nicht initialisierte Variable zu beenden
set -u
#Setzen Sie den ersten Befehlszeilenargumentwert auf den Benutzernamen
Benutzername=$1
#Setzen Sie den zweiten Befehlszeilenargumentwert auf das Passwort
Passwort=$2
#Überprüfen Sie, ob Benutzername und Passwort gültig oder ungültig sind
Wenn [[ $username == ‚admin‘ && $password == ‚hidenseek‘ ]]; Dann
echo „Gültiger Benutzer.“
anders
echo „Ungültiger Benutzer.“
fi

Ausgabe:

Die folgende Ausgabe wird angezeigt, wenn das Skript ohne Verwendung eines Befehlszeilenargumentwerts ausgeführt wird. Das Skript stoppt die Ausführung, nachdem es die erste nicht initialisierte Variable abgerufen hat:

Die folgende Ausgabe wird angezeigt, wenn das Skript mit einem Befehlszeilenargumentwert ausgeführt wird. Das Skript stoppt die Ausführung, nachdem es die zweite nicht initialisierte Variable abgerufen hat:

Die folgende Ausgabe erscheint, wenn das Skript mit zwei Befehlszeilenargumentwerten ausgeführt wird – „admin“ und „hide“. Hier ist der Benutzername gültig, aber das Passwort ist ungültig. Daher wird die Meldung „Ungültiger Benutzer“ gedruckt:

Die folgende Ausgabe erscheint, wenn das Skript mit zwei Befehlszeilenargumentwerten ausgeführt wird – „admin“ und „hidenseek“. Hier gelten Benutzername und Passwort. Daher wird die Meldung „Gültiger Benutzer“ gedruckt:

Abschluss

Die verschiedenen Möglichkeiten, mit den Fehlern im Bash-Skript umzugehen, werden in diesem Tutorial anhand mehrerer Beispiele gezeigt. Wir hoffen, dass dies den Bash-Benutzern hilft, die Fehlerbehandlungsfunktion in ihrem Bash-Skript zu implementieren.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen