โปรดอธิบายให้ฉันทราบว่าเหตุใดข้อความสุดท้ายecho
จึงว่างเปล่า? ฉันคาดว่าXCODE
จะเพิ่มขึ้นใน while loop เป็นค่า 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 ด้วย ฉันคิดว่าฉันขาดบางอย่างเกี่ยวกับขอบเขตตัวแปรที่นี่ แต่หน้าคนเก่าไม่แสดงให้ฉันเห็น