errexit and pipelines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

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/e37f5c7ddcc55eeb/57474f8d2f8efa59

In short, it's about the fact that 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 SUS.

Dash's manpage defines 'errexit' sematics differently: more like I would
like it to work. It also works consistently in the above examples.

Since I like dash behavior more (makes it easier to write reliable
scripts), I'm considering switching my program (cruft) to dash. But
before I do it, can someone please confirm that what is written in the
manpage and how dash behaves right now is indeed the intended behaviour,
and will not in forseeable future be changed to match bash's behaviour?

regards,
-- 
Marcin Owsiany <marcin@xxxxxxxxxx>              http://marcin.owsiany.pl/
GnuPG: 1024D/60F41216  FE67 DA2D 0ACA FC5E 3F75  D6F6 3A0D 8AA0 60F4 1216
 
"Every program in development at MIT expands until it can read mail."
                                                              -- Unknown
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux