2015-10-09 3 views

Répondre

6

PIPESTATUS est en fait une variable de tableau de BASH contenant une liste de valeurs d'état de sortie des processus dans le pipeline de premier plan le plus récemment exécuté.

Pour imprimer tous les états de sortie, vous devez l'utiliser comme:

echo "z" | grep -e 'x' ; echo ${PIPESTATUS[@]} 
0 1 

0 est l'état de sortie de la première commande echo et 1 est l'état de sortie de grep.

Lorsque vous utilisez echo $PIPESTATUS il imprime simplement premier élément de tableau.

Pour vérifier l'état de la commande grep vous ne même pas besoin d'utiliser PIPESTATUS.

Vous devez simplement utiliser $?:

echo "z" | grep -q 'x' ; echo $? 
1 
+2

Oui. Avec les tableaux bash, '$ ary' est en fait' $ {ary [0]} ' –

+1

Oui, c'est un gros" Aha! " pour moi. Merci. –