Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: ERR_EXIT and pipelines



Marcin Owsiany wrote:
> I have recently found a problem with _bash_ that is described in the
> following thread in bash-bug mailing list:
> http://groups.google.com/group/gnu.bash.bug/browse_thread/thread/e37f5c7ddcc5
> 5eeb/57474f8d2f8efa59
> 
> In short, it's about the fact that either of the following lines make a
> "set -e" script abort:
>  true | false
>  for a in 1; do false; done
> but the following does not:
>  true | for a in 1; do false; done
> 
> I thought that this inconsistency was a bug in bash, but as you can find
> out in the thread, it is the first type of statements that behaves
> incorrectly, according to bash maintainer's interpretation of SUS.
> 
> zshoptions manpage defines 'ERR_EXIT' sematics differently: more like I
> would like it to work. It also works consistently in the above examples.
> 
> Since I like zsh behavior more (makes it easier to write reliable
> scripts), I'm considering switching my program (cruft) to zsh. But
> before I do it, can someone please confirm that what is written in the
> manpage and how zsh behaves right now is indeed the intended behaviour,
> and will not in forseeable future be changed to match bash's behaviour?

I'm not going to change the existing behaviour in native mode.  I might
conceivably change it when some additional option were set to put into
it some compatibility mode.  Currently no one has asked even for that.

zsh runs the last part of the pipeline in the current shell if it
consists only of shell commands, which is different from some other
shells.  This difference is allowed by the standard, although whether
knock-on differences, like the one you mention, are also allowed is a
different question.  Anyway, the native shell behaviour won't change.

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070



Messages sorted by: Reverse Date, Date, Thread, Author