Ciprian Dorin, Craciun wrote:
>     Shouldn't any of the following scripts print `error`? (Bash
> 4.0.35(2)-release on ArchLinux.)
> 
>     Or I've miss-interpreted the documentation...
> 
>     Thanks,
>     Ciprian.
> 
> 
> ~~~~
> set -e -o pipefail
> ( false ; echo ok ; ) || echo error
> ~~~~
> 
> ~~~~
> set -e -o pipefail
> ( false ; echo ok ; ) | true || echo error
> ~~~~
> 
> ~~~~
> set -e -o pipefail
> { false ; echo ok ; } || echo error
> ~~~~
> 
> ~~~~
> set -e -o pipefail
> { false ; echo ok ; } | true || echo error
> ~~~~

No.  Since `set -e' has no effect on the left side of the || or &&
operators, all of the commands preceding the || exit with status 0.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/


Reply via email to