On Jan 29, 2008 8:09 PM, Stepan Koltsov <[EMAIL PROTECTED]> wrote: > What is "simple command"? > > Is > > === > ( false ) || false > === > > simple? Seems like it is not, however > > === > set -e > > ( false ) || false > > echo "end" > === > > Prints nothing and exits with error.
Indeed according to man bash, this is a list It is perhaps possible to consider that the last false is executed as a simple command but I think the documentation of set -e could perhaps be made more clear about what happens when the last command of a list exits with non 0. I understand why it is implemented this way, so that any non processed error exits the shell. The shells seems to disagree on what (false) should do (ksh and zsh exit the shell, dash and bash only the subshell. They also seems to disagree on what ! true should do ( zsh exits, bash dash and ksh don't)