Considérez le code suivant
outer-scope.sh
#!/bin/bash
set -e
source inner-scope.sh
echo $(inner)
echo "Je pensais que j'allais mourir :("
inner-scope.sh
#!/bin/bash
function inner() { echo "gagnant"; return 1; }
J'essaie de faire en sorte que outer-scope.sh
se termine lorsque l'appel à inner()
échoue. Étant donné que $()
invoque un sous-shell, cela ne se produit pas.
Comment puis-je obtenir la sortie d'une fonction tout en préservant le fait que la fonction peut se terminer avec un code de sortie non nul ?