S'il vous plaît, expliquez-moi pourquoi la toute dernière déclaration "echo" est vide. Je m'attends à ce qu'il 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 l'instruction suivante à la place de la méthode ++ XCODE
XCODE=`expr $XCODE + 1`
et cela n'imprimera pas non plus en dehors de la déclaration while. Je pense que je manque quelque chose à propos de la portée variable ici mais la vieille page de manuel ne me la montre pas.