JMSState_file 是一个文件,下面的第一个语句从中取出JMS_Pending_Count的数目,echo $JMSPENDINGCNT 可以
看到是一个数字。 但是在 if [$JMSPENDINGCNT -gt 100] 部分居然报错, 提示 Command not found, 排错了很久才参考其他脚本知道问题点 , 修改更改为 if [ $JMSPENDINGCNT -gt 100 ] ,注意其中前后的空格,就是这两个空格导致了问题出现。 shell 脚本是不是因为太强大,所以这些写法也比较苛刻 ??
JMSPENDINGCNT=`cat JMSState_file|grep JMS_Pending_Count|tr -d 'L'|awk -F ':' '{print $2}'`
if [$JMSPENDINGCNT -gt 100]
then
echo "Check Time: `date '+%y/%m/%d %H:%M:%S'`,$HNAME warning" >> $WorkDir/alert_jmsjdbc.flag
echo " $HNAME "|mailx -s "`hostname`:$HNAME JMS Pending Count>=100,please check" $MailTo
else
echo "Check Time: `date '+%y/%m/%d %H:%M:%S'`,$HNAME JMS is normal." >> $WorkDir/log/$MON_DATE.log
echo "$HNAME JMS Queue ok" >> $WorkDir/alert_jmsjdbc.flag
fi
then
echo "Check Time: `date '+%y/%m/%d %H:%M:%S'`,$HNAME warning" >> $WorkDir/alert_jmsjdbc.flag
echo " $HNAME "|mailx -s "`hostname`:$HNAME JMS Pending Count>=100,please check" $MailTo
else
echo "Check Time: `date '+%y/%m/%d %H:%M:%S'`,$HNAME JMS is normal." >> $WorkDir/log/$MON_DATE.log
echo "$HNAME JMS Queue ok" >> $WorkDir/alert_jmsjdbc.flag
fi
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-745249/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-745249/
本文介绍了一个关于Shell脚本中因忽视空格而导致的错误案例。具体问题是在条件判断语句中,由于前后空格的存在使得命令无法被正确解析。通过修正空格问题,脚本成功实现了对文件中特定计数的读取,并根据计数结果发送警告邮件。
7275

被折叠的 条评论
为什么被折叠?



