Veuillez m'expliquer pourquoi la toute dernière echo
déclaration est vide? Je m'attends à ce que cela XCODE
soit incrémenté dans la boucle while à une valeur de 1:
#!/bin/bash
OUTPUT="name1 ip ip status" # normally output of another command with multi line output
if [ -z "$OUTPUT" ]
then
echo "Status WARN: No messages from SMcli"
exit $STATE_WARNING
else
echo "$OUTPUT"|while read NAME IP1 IP2 STATUS
do
if [ "$STATUS" != "Optimal" ]
then
echo "CRIT: $NAME - $STATUS"
echo $((++XCODE))
else
echo "OK: $NAME - $STATUS"
fi
done
fi
echo $XCODE
J'ai essayé d'utiliser la déclaration suivante au lieu de la ++XCODE
méthode
XCODE=`expr $XCODE + 1`
et il ne s'imprimera pas non plus en dehors de l'instruction while. Je pense qu'il me manque quelque chose sur la portée variable ici, mais la vieille page de manuel ne me le montre pas.