2010-08-13 5 views

Antwort

364

Vielleicht möchten Sie set -e:

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

Diese bash sagt, dass es das Skript beenden sollte, wenn eine Anweisung, um eine nicht-wahr Rückgabewert zurückgibt. Der Vorteil von -e besteht darin, dass Fehler, die zu schwerwiegenden Problemen führen, verhindert werden, wenn sie früher entdeckt werden konnten. Für die Lesbarkeit möchten Sie vielleicht auch set -o errexit verwenden.

+62

Beachten Sie 'set -e' gotchas: http://mywiki.wooledge.org/BashFAQ/105 – Kris

+1

@Kris Danke, das hat mich gebissen auf Linux Mint. Es beendet stillschweigend das Skript ohne Nachricht. also habe ich die set -e-Verwendung entfernt. –

+0

@LukeW das ist normal. Der Beendigungscode ist jedoch nicht Null und zeigt einen Fehler an. Auch jedes Programm, das fehlschlägt, druckt normalerweise eine Fehlermeldung selbst, versuchen Sie es mit nur shebang + 'set -e' + z. 'ls nein '. Sie erhalten eine klare Fehlermeldung und Skripts schlagen früh fehl. Ausgezeichnete Software. – vidstige

Verwandte Themen