Область видимости переменной Bash

Пожалуйста, объясните мне, почему самый последний "эхо" заявление пустое? Я ожидаю, что он был увеличен в цикле while до значения 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

Я пытался использовать следующий оператор вместо метода XCODE ++

XCODE=`expr $XCODE + 1`

и это тоже не будет печататься вне оператора while. Я думаю, что я что-то упускаю из-за области видимости переменной, но ol & apos; Страница man не показывает его мне.

Ответы на вопрос(7)

Ваш ответ на вопрос