Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: set -e (no && or ||)
- X-seq: zsh-workers 30730
- From: Chet Ramey <chet.ramey@xxxxxxxx>
- To: Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx>
- Subject: Re: set -e (no && or ||)
- Date: Fri, 12 Oct 2012 09:49:32 -0400
- Cc: zsh-workers@xxxxxxx, chet.ramey@xxxxxxxx
- In-reply-to: <CAECNH1RQxAH3DvSCVagR_DQHqA6Cpi2U+0p9m3=rhp=kDSnGCQ@mail.gmail.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <20121012110542.314890@gmx.com> <CAECNH1RQxAH3DvSCVagR_DQHqA6Cpi2U+0p9m3=rhp=kDSnGCQ@mail.gmail.com>
- Reply-to: chet.ramey@xxxxxxxx
On 10/12/12 7:53 AM, Peter Stephenson wrote:
> 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.
2.9.1 Simple Commands
If there is a command name, execution shall continue as described in
Command Search and Execution. If there is no command name, but the command
contained a command substitution, the command shall complete with the exit
status of the last command substitution performed. Otherwise, the command
shall complete with a zero exit status.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU chet@xxxxxxxx http://cnswww.cns.cwru.edu/~chet/
Messages sorted by:
Reverse Date,
Date,
Thread,
Author