470 Stimmen

Anhalten beim ersten Fehler

Mögliches Duplikat:
Automatisches Beenden von Bash-Shell-Skripten bei Fehlern

Wie kann ich die Bash beim ersten fehlgeschlagenen Befehl anhalten lassen, ohne dass ich so etwas in meinen Code einbauen muss?

some_prog || exit 1
some_other_prog || exit 1

821voto

Alok Singhal Punkte 87419

Vielleicht wollen Sie set -e :

www.davidpashley.com/articles/writing-robust-shell-scripts.html#id2382181 :

Dies teilt der Bash mit, dass sie das Skript beenden soll, wenn eine Anweisung einen nicht-wahren Rückgabewert liefert. Der Vorteil der Verwendung von -e ist, dass es verhindert, dass sich Fehler zu ernsthaften Problemen auswachsen, wenn sie früher hätten erkannt werden können. Um die Lesbarkeit zu verbessern, können Sie auch hier set -o errexit verwenden.

186 Stimmen

Achten Sie auf set -e Unannehmlichkeiten: mywiki.wooledge.org/BashFAQ/105

1 Stimmen

@Kris Danke, das biss mich auf linux mint. es still beendet Skript ohne Meldung. so habe ich set -e Verwendung entfernt.

6 Stimmen

@LukeW das ist normal. Allerdings wird der Exit-Code ungleich Null sein, was auf einen Fehler hinweist. Außerdem gibt jedes Programm, das fehlschlägt, normalerweise selbst eine Fehlermeldung aus, versuchen Sie es einfach mit shebang + set -e + z.B. ls nope . Sie erhalten eine klare Fehlermeldung, und die Skripte schlagen frühzeitig fehl. Ausgezeichnete Software.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X