bug-bash
[Top][All Lists]
Advanced

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

Re: Command substitution and exiting from deeply nested subshells


From: Greg Wooledge
Subject: Re: Command substitution and exiting from deeply nested subshells
Date: Mon, 7 Oct 2013 11:14:04 -0400
User-agent: Mutt/1.4.2.3i

On Mon, Oct 07, 2013 at 11:58:48AM -0300, Carlos Pita wrote:
> > Exiting in a subshell will never cause the parent shell to exit,
> > regardless of depth.
> 
> This is not true in general.
> set -e; (exit 1); echo "I don't exist"

In this case, it is the "set -e" which may or may not cause the parent
shell to terminate, depending on which shell you're doing this in.

imadev:~$ bash-4.3 -c 'set -e; (exit 1); echo "I do not exist"'
imadev:~$ bash-4.2 -c 'set -e; (exit 1); echo "I do not exist"'
imadev:~$ bash-4.1 -c 'set -e; (exit 1); echo "I do not exist"'
imadev:~$ bash-4.0 -c 'set -e; (exit 1); echo "I do not exist"'
imadev:~$ bash-3.2 -c 'set -e; (exit 1); echo "I do not exist"'
I do not exist

The exit itself is *not* propagated upward, and please see my previous
comments about the reliability and usefulness of set -e (i.e. none).



reply via email to

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