bug-bash
[Top][All Lists]
Advanced

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

Re: set -e and subshells


From: Chet Ramey
Subject: Re: set -e and subshells
Date: Tue, 27 Sep 2005 08:56:57 -0400

> I'm noticing a difference in behavior between Solaris 9's sh and GNU
> bash, and was wondering if this is a bug or a feature.

It's a POSIX requirement.

> Using GNU bash, version 3.00.16(1)-release (i386-redhat-linux-gnu).
> This command:
> 
>     bash -exc 'for x in a b c; do ( false ); echo status is $?; done'
> 
> loops through three items (a b c) and executes a failing command in a
> subshell.  I was expecting the outer shell to notice that the exit
> status from the subshell is nonzero and terminate immediately; instead
> it prints "status is 1" and continues looping.

According to POSIX, `set -e' only affects the execution of simple commands.
A command in a subshell is not a simple command.

You can look at the grammar at
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_10

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
( ``Discere est Dolere'' -- chet )
                                                Live Strong.
Chet Ramey, ITS, CWRU    chet@case.edu    http://tiswww.tis.case.edu/~chet/




reply via email to

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