请向我解释为什么最后echo
一句话是空白的?我希望XCODE
在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语句之外打印。我认为我在这里缺少有关可变范围的信息,但是联机帮助页没有向我显示。
您在哪里将XCODE初始化为可以递增的值?
—
Paul Tomblin
我试图在while语句之外的代码顶部抛出“ XCODE = 0”
—
Matt P
没有多余的东西,它对我有用。#!/ bin / bash for in 1 2 3 4 5; 做echo $((++ XCODE))做echo“ fin:” $ XCODE我认为您的问题与变量作用域无关,并且与一段时间内发生的一切有关。
—
Paul Tomblin
同意..好像与“ while read”循环有关?
—
Matt P
关于此有一个Bash常见问题解答:mywiki.wooledge.org/BashFAQ/024
—
法比奥说,请莫妮卡(Monica)