我有以下shell脚本来发送电子邮件提醒。当我只有for循环时,一切正常,但是当我尝试添加if条件时,它似乎不起作用并且每次都返回一个空消息体。脚本的片段如下:
for host in $servers
do
connections=`ssh $host "netstat -a | grep ES | wc -l"`
echo "$connections" >> debug.log
echo "$host" >> debug.log
if [$connections -gt 0]
then
echo "------------------------------------------------------------------" >> $emailmessage
echo "Host: $host needs to be checked" >> $emailmessage
echo "------------------------------------------------------------------" >> $emailmessage
echo "$connections" >> $emailmessage
else
echo "Everything is fine"
fi
done
当我尝试执行脚本时,我总是得到line 21: [49: command not found
错误。我试过调试,但我发现我的脚本甚至没有进入if循环。
有人可以告诉我我错过了什么吗?
提前致谢。
/ RD
答案 0 :(得分:1)
[
和]
周围应该有空格,最好将变量放在引号中,因此请将行更新为
...
if [ "$connections" -gt 0 ] ;
then
...