Je voudrais être capable de créer une fonction bash capable de lire le code de sortie de la commande avant le pipe. Je ne suis pas sûr qu'il soit possible d'y avoir accès.Récupère le code de sortie du dernier tube (stdin)
echo "1" | grep 2
renvoie un code 1 d'étatecho "1" | grep 1
renvoie un code d'état 0
Maintenant, je voudrais ajouter une troisième commande pour lire l'état, avec un tuyau:
echo "1" | grep 2 | echo $?
va afficher "0", même si le code d'état est 1.
Je sais que je peux utiliser le echo "1" | grep 2 && echo "0" || echo "1"
, mais je préférerais l'écrire avec un tuyau.
Est-ce qu'ils quand même à le faire (ce serait encore mieux si elle travaillait sur la plupart des obus, comme bash, sh, et zsh)
Pourquoi voudriez-vous utiliser un tuyau pour cela? 'echo" 1 "| grep 2; echo $? 'fonctionnerait bien. – Yannoff
Parce que je pourrais aussi avoir besoin de ce qui vient de stdin. Cependant, je préfère votre solution que celle de @mattinbits – edi9999
Cela ressemble à un problème XY. Pourquoi avez-vous besoin du statut de * dans * le pipeline? – chepner