when using -e in bash, exclamation mark before a passing command still doesn't cause the script to fail -


i thought following script print 'hello' , exit '1'

#!/bin/bash -e  ! echo hello echo world 

however, prints

hello world 

and exits 0

the following script exits 1:

#!/bin/bash -e  ! echo hello 

and following

#!/bin/bash -e  echo hello | grep world ! echo hello echo world 

but reason -e option doesn't manage fail script when command returns failing exit code due ! half way through. can offer explanation make me feel better this?

http://www.gnu.org/software/bash/manual/bashref.html#the-set-builtin

the -e command fail script command returning non-zero code, except cases, while loops, or commands returning 0 inverted ! option. ! echo hello return 1 (0 inverted !) -e option won't fail.

but if make exit status 42, have script failed.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -