Le code ci-dessous imprime Continuing
si j'enlève le sous-shell. Avec le sous-shell, j'ai besoin d'un autre appel réussi après le test (en utilisant :
comme une commande sans succès réussie est plus simple, IMO) si je veux arriver à la partie Continuing
.Comportement bizarre dans sh avec `set -e` et un sous-shell
#!/bin/sh
set -e #Exit on untested error
(#Subshell
#Some succesfful commands go here
#And here comes a file test
[ -f "doesntExist" ] && {
: #Irrelevant
}
#:
)
echo Continuing
Est-ce que ce comportement est correct? Pourquoi l'introduction d'un sous-shell changer le comportement des
[ -f "doesntExist" ] && {
:
}
J'utilise le dash 0.5.7-2ubuntu2
pour exécuter ce.