Jeder Befehl, der ausgeführt wird, hat einen Exit-Status.
Diese Prüfung betrachtet den Exit-Status des Befehls, der am meisten kürzlich vor der Ausführung dieser Zeile beendet wurde.
Wenn Sie möchten, dass Ihr Skript beendet wird, wenn dieser Test true zurückgibt (der vorherige Befehl fehlgeschlagen ist), dann geben Sie exit 1
(oder was auch immer) innerhalb dieses if
-Blocks nach dem echo
ein.
Aber, wenn Sie den Befehl ausführen und dessen Ausgabe testen möchten, ist die folgende Methode oft geradliniger.
if some_command; then
echo Befehl hat true zurückgegeben
else
echo Befehl hat einen Fehler zurückgegeben
fi
Oder um das umzukehren, verwenden Sie !
für die Negation
if ! some_command; then
echo Befehl hat einen Fehler zurückgegeben
else
echo Befehl hat true zurückgegeben
fi
Beachten Sie jedoch, dass keiner von beiden darauf achtet, was der Fehlercode ist. Wenn Sie wissen, dass Sie sich nur um einen bestimmten Fehlercode kümmern, müssen Sie $?
manuell überprüfen.