Le 24/09/2010 15:38, Greg Wooledge a écrit : > If this is turning into a general discussion of errexit (set -e) then > please also see > > http://mywiki.wooledge.org/BashFAQ/105 and > http://fvue.nl/wiki/Bash:_Error_handling
These pages are great and should be read. But from experience, I totally disagree with GreyCat's conclusion: GreyCat's personal recommendation is simple: don't use set -e. Add your own error checking instead. My life has become incredibly easier since I started to put at the top of every single of my scripts either a line like this: if $DEBUG; then set -e; fi .. or even just a plain "set -e". The only effort this requires is the need to append this from time to time: cat foo || true # missing foo: expected, ignore It is an order of magnitude more convenient and of course much safer to append "|| true" from time to time than to append "|| exit 1" after almost every line. Tested. (The only other effort is to refrain to file a bug when set -e sometimes fails to catch a failed command :-) Bourne shell is the only programming language I know that ignores errors by default. "set -e" does not completely repair this design flaw but it goes a long and appreciated way.