我正在尝试使用案例逻辑检查$ VERSION,但有一些问题。
$ VERSION可以是“由主持人拒绝连接”,“0,4,1,101 2013-05-18”,或其他一些版本“0,4,1,102 2013-09-18”
我似乎总是遇到“其他问题”而我的测试中$ VERSION是“0,4,1,101 2013-05-18”......
#!/bin/bash
HOSTNAME=$1
VERSION=$(/usr/local/nagios/libexec/check_nrpe -H servername01 -c checkversion)
echo "$VERSION" >> /var/log/dig-nscp-install.log
NOW=$(date '+%Y-%m-%d -- %H:%M')
LOGFILE=/var/log/dig-nscp-install.log
#if [ "$TRVER" == "Connection refused by host" ]; then
# echo "$NOW : Version $VERSION already installed on HOSTNAME!" >> /var/log/dig-nscp-install.log
#else
# echo "$NOW : Powershell install script initiated to install version $VERSION on $HOSTNAME!" >> /var/log/dig-nscp-install.log
# /usr/local/nagios/libexec/check_nrpe -H servername02 -t 300 -c install_nscp_0.4.101 -a $HOSTNAME
#
#fi
case $VERSION in
"Connection refused by host")
echo "$NOW : Powershell script initiated to install version $VERSION on $HOSTNAME!" >> /var/log/dig-nscp-install.log
;;
"0,4,1,101 2013-05-18")
echo "$NOW : Version $VERSION already installed on HOSTNAME!" >> /var/log/dig-nscp-install.log
;;
*)
echo "$NOW : Some other problem" >> /var/log/dig-nscp-install.log
;;
esac
答案 0 :(得分:1)
我的猜测是@chepner在评论中提到的。你可以尝试类似的东西:
"Connection refused by host"*)
< ==注意*
上述情况应该记录任何错误的回车或其他怪异。
如果CR 是设置VERSION
的问题,您可以使用tr
更改其分配,以消除不需要的字符:
VERSION=$(some command here|tr -d "\r")
答案 1 :(得分:0)
我运行了你的代码(用bash)并且它没有任何问题 它做了它应该做的完美:-)
必须在为“$ VERSION”赋值的代码中找到问题的原因。
如果您使用缺少的部分更新您的问题,那么我会尝试相应地更新我的答案。
更新:使用VERSION=$( echo "0,4,1,101 2013-05-18" )
进行测试,效果非常好。
我无法运行您正在运行的nagios(?)程序,但可以确定它提供的输出与您预期的不同(我将进一步编写并相应地编辑此答案)。