Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: set -e (no && or ||)
On Fri, 12 Oct 2012 07:05:41 -0400
Sergey Fadeev <hindsight@xxxxxxxxx> wrote:
> Why doesn't it exit the shell?
> $ set -e
> $ echo $(false)
> Shouldn't the error code of $(false) command substitution be checked
> by set -e before passing stdout to the echo builtin?
No, because the command was "echo", and that didn't fail. Exit status
effectively means exit status seen by the main shell command
interpreter ($?), although I'm sure there are some subtleties I haven't
thought about.
The way to get the status of a substitution to fail is to use an
assignment:
output=$(false)
which does cause the shell to exit on failure, because it would set $? to
1. This is standard shell behaviour, though I can't point to where in
the standard it says.
pws
Messages sorted by:
Reverse Date,
Date,
Thread,
Author