Beim Bash-Scripting wird das „$?“ verwendet. Die Variable enthält den Exit-Status des letzten Ausführungsbefehls. Wenn ein Befehl in einem Shell-Skript ausgeführt wird, gibt er einen Exit-Status in Form eines numerischen Werts zurück. Somit handelt es sich um ein Tool zur Überprüfung des Ausführungsstatus eines Linux-Befehls. Es ist hilfreich, eine Fehlerbehandlung durchzuführen oder das Ergebnis eines vorherigen Befehls zu ermitteln.
In diesem Artikel wird die Bedeutung von „$?“ beschrieben. zusammen mit der praktischen Umsetzung.
- Bedeutung von $? in einem Shell-Skript
- Wie funktioniert $? Arbeiten Sie mit Shell-Skript?
- Überprüfen Sie, ob der letzte Befehl ausgeführt wurde oder fehlgeschlagen ist
- Überprüfen Sie, ob der Befehl gefunden wurde oder nicht
Bedeutung von $? in einem Shell-Skript
Der Wert von $? ist 0, wenn der zuletzt ausgeführte Befehl erfolgreich und ohne Fehler abgeschlossen wurde. Wenn ein Fehler vorliegt oder der Befehl aus irgendeinem Grund fehlgeschlagen ist, $? enthält einen Wert ungleich Null, der die Art des aufgetretenen Fehlers oder Fehlers angibt.
Wie funktioniert $? Arbeiten Sie mit Shell-Skript?
Berechnen wir den Wert von „$?“ im „script.sh”-Datei, nachdem der spezifische Befehl im Terminal ausgeführt wurde. Hier sind einige Beispiele für die Verwendung des „$?“ in einem Shell-Skript:
Beispiel 1: Überprüfen Sie, ob der letzte Befehl ausgeführt wurde oder fehlgeschlagen ist
Als Beispiel wird die Ausführung des „ls”-Befehl durch Angabe des Pfads „/home/itslinuxfoss/Downloads/“:
$ ls /home/itslinuxfoss/Downloads/ $ sudo nano script.sh
Der Beispielcode des Skripts ist unten aufgeführt:
if [ $? -eq 0 ]; then echo "The command was successful" else echo "The command failed" fi
In diesem Code ist das „lsDer Befehl „wird verwendet, um den Inhalt des „“ aufzulisten./home/itslinuxfoss/Downloads/“ Verzeichnis. Überprüfen Sie dann den Wert von $? um festzustellen, ob der Code ausgeführt wird oder nicht. Wenn „$?„ist gleich 0, gibt eine Erfolgsmeldung aus. Andernfalls drucken Sie eine Fehlermeldung aus.
Speichern und schließen Sie die Skriptdatei. Erwerben Sie danach die „+x” Berechtigung zum Ausführen des Skripts im Terminal:
$ sudo chmod +x script.sh $ ./script.sh
Die Ausgabe zeigt, dass der Befehl erfolgreich ausgeführt wurde.
Beispiel 2: Überprüfen Sie, ob der Befehl gefunden wurde oder nicht
Verwenden Sie in diesem Beispiel das „welche”-Befehl, um zu überprüfen, ob das „gccWenn der Compiler auf dem System installiert ist, leiten Sie die Ausgabe nach „/“ um.dev/null”:
$ which gcc > /dev/null 2>&1 $ sudo nano script.sh
Erstellen wir nun ein Skript, um zu überprüfen, ob der Befehl gefunden wurde:
if [ $? -eq 0 ]; then echo "The gcc compiler was found" else echo "The gcc compiler was not found" fi
Überprüfen Sie im Skript den Wert von „$?” um festzustellen, ob die „gcc„Befehl wurde gefunden. Wenn $? gleich 0 ist, wird eine Meldung ausgegeben, die lautet: „Der gcc-Compiler wurde gefunden“. Andernfalls drucken Sie eine Nachricht aus, die lautet: „Der gcc-Compiler wurde nicht gefunden“.
Speichern und schließen Sie die Skriptdatei. Verwenden Sie außerdem die „chmod” Befehl mit „+x” Berechtigung, das Skript ausführbar zu machen und es dann auszuführen:
$ sudo chmod +x script.sh $ ./script.sh
Die Ausgabe bestätigt, dass „Der gcc-Compiler wurde gefunden“.
Abschluss
Das Shell-Skript bietet die „$?”-Variable, die den Exit-Status des zuvor im Terminal ausgeführten Skripts hat. Nach der Ausführung des Befehls wird ein numerischer Wert zurückgegeben, der bestätigt, ob der Befehl erfolgreich ausgeführt wurde oder nicht.
Dieser Leitfaden hat die Bedeutung von $? kurz erläutert. in einem Shell-Skript zusammen mit einigen Beispielen.