bug-bash
[Top][All Lists]
Advanced

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

Re: command substitution is stripping set -e from options


From: Christoph Gysin
Subject: Re: command substitution is stripping set -e from options
Date: Tue, 6 Oct 2015 00:37:34 +0300

> The parent shell (the one that enabled -e) should be the one to make the
> decision about whether or not the shell exits.  The exit status of the
> command substitution doesn't make a difference except in one special case,
> so inheriting errexit and exiting (possibly prematurely) doesn't really
> help the parent decide whether or not to exit.

I'm not sure I fully understand.

The parent shell should be the one to decide if the script is supposed
to abort on any unsuccessful exit status. Command substitution should
not change that. The parent shell decided via set -e that it wants to
exit immediately on error.

> Now, of course, it's been more than 20 years, and backwards compatiblity
> is a concern.

I still think this is a bug, I can't imagine why anyone would set "set
-e" and not want to exit on failing commands inside command
substitution. I think posix mode does the right thing in this regard.

If you don't want to fix this for backwards compatibility, is there
anyway we could change that behaviour explicitly? I.e. with another
option? Avoiding command substitution isn't really an option, and this
essentially disables the whole point of set -e.

Chris
-- 
echo mailto: NOSPAM !#$.'<*>'|sed 's. ..'|tr "<*> !#:2" org@fr33z3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]