Führen Sie in Bash, wenn ein Befehl fehlschlägt, einen weiteren Befehl aus

Führen Sie in Bash, wenn ein Befehl fehlschlägt, einen weiteren Befehl aus
Wussten Sie, dass jeder Befehl, den Sie in Linux ausführen, einen Exit -Code hat? Dies gilt auch dann, wenn ein Befehl mit einem Fehler endet. Beendenwerte sind ganzzahlige Werte, die zwischen 0 und 255 liegen. Ein Wert ungleich Null, ich.e., Ein Wert höher als 0 gibt an, dass der Befehl mit einem Fehler beendet.

Wenn ein Befehl erfolgreich in Bash ausgeführt wird, verfügt er über einen 0 -Exit -Code. Für den nicht gefundenen Befehl ist der Exit -Code 127. Daher können wir den Exit -Code verwenden, um eine bestimmte Aktion auszuführen.

In diesem Tutorial können Sie einige Tipps und Tricks erhalten, mit denen Sie eine Aktion basierend auf dem Exit -Code des vorherigen Befehls ausführen können.

Verwenden des oder Operators

Eine Möglichkeit, einen Befehl auszuführen, wenn der vorherige Befehl fehlschlägt. Da für ein oder Bediener nur eine Bedingung wahr ist, können wir die folgende Syntax ausführen:

$ command1 || commad2

In der obigen Syntax wird der zweite Befehl auch dann ausgeführt, wenn der erste Befehl fehlschlägt. Beachten Sie, dass dies von der Verwendung von && Operator unterscheidet, da der erste Befehl erforderlich ist, um erfolgreich auszuführen.

Zum Beispiel:

$ ping -c lhint || echo "Erfolg";

Im obigen Beispiel wird Echo trotz des Fehlers, der durch die Namensauflösung im Ping -Befehl verursacht wird.

Hier ist ein Screenshot, der Folgendes veranschaulicht:

NOTIZ: Sie können mehrere Befehle mithilfe von Bash -Operatoren zusammenschließen, um das beste Ergebnis zu erzielen. Zum Beispiel können Sie den Schlaf nur ausführen, wenn Ping und Echo erfolgreich ausgeführt werden.

$ ping -c 1 LinuxHint.com && echo "Erfolg" || Schlaf 100;

Wenn im obigen Beispiel entweder Ping oder Echo fehlschlägt, wird der Schlaf nicht ausgeführt.

Dies kann hilfreich sein, wenn der folgende Befehl auf die Ausgabe aus dem vorherigen Befehl beruht.

Verwenden von Exit -Code

BASH ermöglicht es uns, den Exit -Code des zuvor ausgeführten Befehls zu erhalten. Geben Sie den Befehl ein, um den Bezugscode anzuzeigen:

$ echo $?

Wir erhalten 0 für einen Befehl, der korrekt ausgeführt wurde, und 127 für einen Befehl, der im obigen Beispiel nicht gefunden wurde.

Um den Exit -Code für eine Aktion zu verwenden, tun wir:

#!/Bin/Bash
Wenn [[$? -Gl 0]];
Dann
echo "Erfolg"
anders:
echo "scheitern"
fi

Im obigen Skript überprüfen wir, ob der Exit -Code gleich 0 ist, was den erfolgreich ausgeführten Befehl angibt. Wenn wahr, führen Sie einen Befehl aus. In diesem Fall Echo „Erfolg.Sonst wieder echo „scheitern.”

Abschluss

In diesem schnellen Tutorial haben wir Bash -Operatoren verwendet und Codes beendet, um einen Befehl auszuführen, wenn der vorherige Befehl fehlschlägt oder erfolgreich ist.