GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man beenden, wenn ein Befehl fehlgeschlagen ist?

Die anderen Antworten haben die direkte Frage gut abgedeckt, aber Sie könnten auch daran interessiert sein, set -e zu verwenden . Damit wird jeder fehlgeschlagene Befehl (außerhalb bestimmter Kontexte wie if Tests) führt zum Abbruch des Skripts. Für bestimmte Skripte ist es sehr nützlich.


Versuchen Sie:

my_command || { echo 'my_command failed' ; exit 1; }

Vier Änderungen:

  • Ändern Sie && bis ||
  • Verwenden Sie { } anstelle von ( )
  • Führen Sie ; ein nach exit und
  • Leerzeichen nach { und vor }

Da Sie die Nachricht drucken und nur beenden möchten, wenn der Befehl fehlschlägt (beendet mit einem Wert ungleich Null), benötigen Sie einen || kein && .

cmd1 && cmd2

wird cmd2 ausführen wenn cmd1 erfolgreich ist (Ausgangswert 0 ). Wo als

cmd1 || cmd2

wird cmd2 ausführen wenn cmd1 schlägt fehl (Ausgangswert ungleich Null).

Mit ( ) lässt den darin enthaltenen Befehl in einer Sub-Shell laufen und Aufruf von exit von dort bewirkt, dass Sie die Sub-Shell verlassen und nicht Ihre ursprüngliche Shell, daher wird die Ausführung in Ihrer ursprünglichen Shell fortgesetzt.

Um dies zu umgehen, verwenden Sie { }

Die letzten beiden Änderungen werden von bash benötigt.


Linux
  1. So verwenden Sie den Su-Befehl unter Linux

  2. Wie funktioniert der Exit-Befehl auf einem Unix-Terminal?

  3. `$?` ? Ist es eine Variable?

  4. So beenden Sie einen Docker-Container

  5. Befehl „x86_64-linux-gnu-gcc“ ist mit Exit-Status 1 fehlgeschlagen

So verwenden Sie den Linux-SS-Befehl

So entfernen Sie ein Verzeichnis in Linux

So verwenden Sie den Linux-nohup-Befehl

Bash Exit-Befehl und Exit-Codes

So verwenden Sie den PS-Befehl

So verwenden Sie den TOP-Befehl