
On Fri, Dec 23, 2016 at 06:02:54PM +1100, russell@coker.com.au wrote:
While it is documented to work that way doesn't mean it's a good idea to do it.
the issue isn't about bash and '-e', it's about env breaking the ability to pass options on the #! line. '-e' is just a trivial illustrative example. with bash it's only a minor annoyance because most (or maybe all, i can't remember) options can be enabled with a 'set' command inside the script anyway. For other languages, it can break the script entirely or, worse, change the script's behaviour in subtle and "interesting" ways.
cd $DIR rm -rf *
-e isn't a replacement for defensive programming around potentially dangerous things, it's just a way to avoid uglifying your code by adding exit-status checks after every trivial command. an uncaught non-zero exit code will abort the script. a saner, or more defensive, way to write that would be: cd "$DIR" && rm -rf * or cd "$DIR" \ && rm -rf * \ || exit 1 and it's worthwhile doing that (including quoting the $DIR variable) whether you use 'bash -e', 'set -e' in the script, or neither. craig -- craig sanders <cas@taz.net.au>