Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sous-shell et set -e

1 réponse
Avatar
Benoit Izac
Bonjour,

Je ne comprends pas pourquoi l'option « errexit » ne fonctionne pas dans
un sous-shell :

#!/bin/sh
(
set -e
echo true1
false
echo true2
) || echo error

Je m'attendais à ce « echo true2 » ne soit pas exécuté et le sous-shell
retourne faux pour que « echo error » soit exécute mais il n'en est
rien.

Pourquoi ?

Comment obtenir ce comportement ?

Merci.
--
Benoit Izac

1 réponse

Avatar
Benoit Izac
Dans le message , le 23/01/2010 à 12:18, j'ai
écrit :

Je ne comprends pas pourquoi l'option « errexit » ne fonctionne pas dans
un sous-shell :

#!/bin/sh
(
set -e
echo true1
false
echo true2
) || echo error

Je m'attendais à ce « echo true2 » ne soit pas exécuté et le sous-shell
retourne faux pour que « echo error » soit exécute mais il n'en est
rien.



On ne devrait jamais poster avant d'avoir bien mangé. ;-)

Pourquoi ?



Parce que le « || » effectue un test qui invalide le « set -e ».

Comment obtenir ce comportement ?



(
set -e
# commands
)
[ $? -eq 0 ] || echo error

--
Benoit Izac