sous-shell et set -e

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Benoit Izac
Le #21033471
Dans le message é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
Publicité
Poster une réponse
Anonyme