Zakres zmiennej Bash

Proszę mi wyjaśnić, dlaczego ostatnie „echo” jest puste? Spodziewam się, że został zwiększony w pętli while do wartości 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

Próbowałem użyć następującej instrukcji zamiast metody ++ XCODE

XCODE=`expr $XCODE + 1`

i to też nie będzie drukować poza instrukcją while. Myślę, że brakuje mi tutaj czegoś o zmiennym zakresie, ale strona mężczyzny nie pokazuje mi tego.

questionAnswers(7)

yourAnswerToTheQuestion