On 1/29/08, Pierre Gaston <[EMAIL PROTECTED]> wrote:
> On Jan 28, 2008 11:36 PM,  <[EMAIL PROTECTED]> wrote:
> > Configuration Information [Automatically generated, do not change]:
> > Machine: i486
> > OS: linux-gnu
> > Compiler: gcc
> > Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='i486' 
> > -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i486-pc-linux-gnu' 
> > -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
> > -DHAVE_CONFIG_H   -I.  -I../bash -I../bash/include -I../bash/lib   -g -O2
> > uname output: Linux hilbert 2.6.18-openvz-amd64 #1 SMP Tue Apr 10 19:34:07 
> > MSD 2007 i686 GNU/Linux
> > Machine Type: i486-pc-linux-gnu
> >
> > Bash Version: 3.1
> > Patch Level: 17
> > Release Status: release
> >
> > Description:
> >         failed subscript does not cause script to exit, while -e is set
> >
> > Repeat-By:
> >
> >         % cat aa.sh
> >         set -e
> >
> >         (
> >             false
> >         )
> >
> >         echo "unreachable"
> >
> >         % bash ./aa.sh
> >         unreachable
> >         % zsh ./aa.sh
> >         zsh: exit 1     zsh ./aa.sh
> >
> >         Script aa.sh is expected to exit with error and print nothing. In 
> > bash it prints "unreachable".
> >
> >
> bash exits the subshell you create with ( )  and not the shell:
>
> $ bash -ce '(false;echo foo);echo bar'
> bar

Bash must exit the shell too. Because

$ bash -ce '(false); echo $?'
1

S.


Reply via email to