J'ai un script comme ceci :
#!/bin/sh
echo "hello"
echo "goodbye"
exit 1
Lorsque je l'exécute seul, j'obtiens comme prévu le code de sortie d'échec.
$ ./fail.sh
hello
goodbye
$ echo $?
1
Cependant, lorsque je l'exécute par grep -v
le statut de la sortie devient un succès :
$ ./fail.sh | grep -v hello
goodbye
$ echo $?
0
Existe-t-il un moyen d'acheminer la sortie d'une commande dans le fichier grep -v
et que le code d'état soit toujours propagé correctement ? Bien sûr, dans le monde réel, l'objectif serait de filtrer la sortie d'une commande bruyante, tout en détectant si la commande a échoué.