2010-08-13 16 views

Odpowiedz

364

Może chcesz set -e:

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

Mówi bash, że powinien wyjść skrypt ewentualne stwierdzenie zwraca bez prawdziwej wartości zwracanej. Zaletą używania opcji -e jest to, że zapobiega ona błędom śnieżnym w poważnych problemach, które mogły zostać wcześniej wykryte. Ponownie, dla czytelności możesz chcieć użyć zestawu -o errexit.

+62

Bądź świadom 'set -e' gotchas: http://mywiki.wooledge.org/BashFAQ/105 – Kris

+1

@Kris Dzięki, ten kawałek mnie na mennicy linux. po cichu wychodzi ze skryptu bez komunikatu. więc usunąłem użycie set -e. –

+0

@LukeW jest to normalne. Jednak kod wyjścia będzie różny od zera, co wskazuje na błąd. Również każdy program, który zawiedzie, normalnie drukuje sam komunikat o błędzie, spróbuj z just shebang + 'set -e' + np. 'ls nope'. Otrzymujesz jeden jasny komunikat o błędzie, a skrypty zawodzą wcześniej. Doskonałe oprogramowanie. – vidstige

Powiązane problemy