请向我解释为什么最后一个“回声”声明为空?我希望它在while循环递增到1的值:Bash可变范围
#!/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手册页并没有显示给我。
你在哪里初始化XCODE到可以递增的东西? – 2008-09-23 21:57:56
我试图在代码的顶部抛出一个“XCODE = 0”,在while语句之外 – 2008-09-23 21:59:21
没有死锁,它适用于我。 #!/ bin/bash for i in 1 2 3 4 5;做 echo $((++ XCODE)) done echo“fin:”$ XCODE 我认为您的问题与变量范围界定无关,并且与此时发生的事情无关。 – 2008-09-23 22:08:23