Bash -Fehlerbehandlung

Bash -Fehlerbehandlung

Fehlerbehandlung ist ein sehr wichtiger Bestandteil jeder Programmiersprache. Bash hat keine bessere Option als andere Programmiersprachen, um den Fehler des Skripts zu bewältigen. Es ist jedoch wichtig, das Bash-Skript zum Zeitpunkt der Ausführung des Skripts aus dem Terminal fehlerfrei zu machen. Die Fehlerbehandlungsfunktion kann für das Bash -Skript auf verschiedene Weise implementiert werden. Die verschiedenen Techniken, um die Fehler im Bash -Skript zu behandeln, werden in diesem Tutorial angezeigt.

Beispiel 1: Fehlerbehandlung mit einer bedingten Anweisung

Erstellen Sie eine Bash -Datei mit dem folgenden Skript, das die Verwendung der bedingten Anweisung für die Fehlerbehandlung anzeigt. Die erste Anweisung „If“ wird verwendet, um die Gesamtzahl der Befehlszeilenargumente zu überprüfen und eine Fehlermeldung zu drucken, wenn der Wert weniger als 2 beträgt. Als nächstes stammen die Dividenden- und Divisorwerte aus den Befehlszeilenargumenten. Wenn der Divisorwert gleich 0 ist, wird ein Fehler generiert und die Fehlermeldung wird im Fehler gedruckt.TXT -Datei. Der zweite Befehl "if" wird verwendet, um zu prüfen, ob der Fehler.Die TXT -Datei ist leer oder nicht. Eine Fehlermeldung wird gedruckt, wenn der Fehler.Die TXT-Datei ist nicht leer.

#!/Bin/Bash
#Überprüfen Sie die Argumentwerte
wenn [$# -LT 2]; Dann
Echo "Ein oder mehrere Argumentation fehlt."
Ausfahrt
fi
#Lesen Sie den Dividendenwert aus dem ersten Befehlszeilenargument
Dividende = $ 1
#Lesen Sie den Divisorwert aus dem zweiten Befehlszeilenargument
Divisor = $ 2
#Die Dividende des Divisors dividieren
result = 'echo "scale = 2; $ dividend/$ divisor" | bc 2> fehler.txt'
#Lesen Sie den Inhalt der Fehlerdatei
Content = 'Katzenfehler.txt'
wenn [-n "$ content"]; Dann
#Druck die Fehlermeldung, wenn der Fehler.TXT ist nicht leer
Echo "durch keinen Fehler teilbar aufgetreten ist."
anders
#Prinke das Ergebnis
echo "$ dividend/$ divisor = $ result"


Ausgang:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts ohne Argument:


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


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


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

Beispiel 2: Fehlerbehandlung mithilfe des Exit -Statuscode

Erstellen Sie eine Bash -Datei mit dem folgenden Skript, das die Verwendung des Bash -Fehlerbehandlungs per Beendenstatuscode anzeigt. Jeder Bash -Befehl wird als Eingaberwert angesehen und dieser Befehl wird später ausgeführt. Wenn der Exit -Statuscode nicht gleich Null ist, wird eine Fehlermeldung gedruckt. Andernfalls wird eine Erfolgsnachricht gedruckt.

#!/Bin/Bash
#Einen Linux -Befehlsnamen
Echo -n "Eingeben Sie einen Befehl ein:"
Lesen Sie CMD_NAME
#Run den Befehl
$ cmd_name
#Scheck, 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


Ausgang:

Die folgende Ausgabe wird nach der Ausführung des vorherigen Skripts mit dem gültigen Befehl angezeigt. Hier wird das „Datum“ als Befehl im Eingabwert angesehen, der gültig ist:


Die folgende Ausgabe wird angezeigt, nachdem das vorherige Skript für den ungültigen Befehl ausgeführt wurde. Hier wird der „CMD“ als Befehl im Eingabwert genommen, 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 zeigt, um die Ausführung zu stoppen, wenn der erste Fehler des Skripts angezeigt wird. 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
#Setzen Sie die Option zum Beenden des Skripts beim ersten Fehler
set -e
Echo 'aktuelles Datum und Uhrzeit:'
#Valid -Befehl
Datum
Echo 'aktuelles Arbeitsverzeichnis:'
#Ungültiger Befehl
CWD
Echo 'Login Benutzername:'
#Valid -Befehl
Wer bin ich
Echo 'Liste von Dateien und Ordnern:'
#Ungültiger Befehl
Liste


Ausgang:

Die folgende Ausgabe wird nach der Ausführung des vorherigen Skripts angezeigt. Das Skript stoppt die Ausführung, nachdem er den ungültigen Befehl "CWD" ausgeführt hat:

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

Erstellen Sie eine Bash -Datei mit dem folgenden Skript, das die Methode zeigt, um die Ausführung des Skripts für die nicht initialisierte Variable zu stoppen. Die Benutzernamen- und Passwortwerte werden aus den Befehlszeilenargumentwerten entnommen. Wenn einer der Werte dieser Variablen nicht initialisiert wird, wird eine Fehlermeldung gedruckt. Wenn beide Variablen initialisiert werden, überprüft das Skript, ob der Benutzername und das Kennwort gültig oder ungültig sind.

#!/Bin/Bash
#Setzen Sie die Option zum Beenden des Skripts für eine nicht initialisierte Variable
set -u
#Setzen Sie den ersten Befehlszeilen-Argumentwert in den Benutzernamen
Benutzername = $ 1
#Setzen Sie den zweiten Befehlszeilen-Argumentwert für das Kennwort
Passwort = $ 2
#Überprüfen Sie, ob der Benutzername und das Passwort gültig oder ungültig sind
if [[$ userername == 'admin' && $ password == 'hidenseek']]; Dann
echo "gültiger Benutzer."
anders
echo "ungültiger Benutzer echo."
fi


Ausgang:

Die folgende Ausgabe wird angezeigt, wenn das Skript ausgeführt wird, ohne einen Befehlszeilenargumentwert zu verwenden. Das Skript stoppt die Ausführung, nachdem sie die erste nicht initialisierte Variable erhalten hat:


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


Die folgende Ausgabe wird angezeigt, wenn das Skript mit zwei Befehlszeilen -Argumentwerten ausgeführt wird - "admin" und "ausblenden". Hier ist der Benutzername gültig, das Passwort ist jedoch ungültig. Die Nachricht "Ungültiger Benutzer" wird also gedruckt:


Die folgende Ausgabe wird angezeigt, wenn das Skript mit zwei Befehlszeilen -Argumentwerten ausgeführt wird - "admin" und "hidenseek". Hier sind der Benutzername und das Passwort gültig. Die Nachricht "Gültiger Benutzer" wird also gedruckt:

Abschluss

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