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 [email protected] http://cnswww.cns.cwru.edu/~chet/