如果在shell脚本中for循环内的循环不起作用

时间:2013-11-11 20:07:49

标签: bash shell if-statement for-loop

我有以下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

1 个答案:

答案 0 :(得分:1)

[]周围应该有空格,最好将变量放在引号中,因此请将行更新为

...
if [ "$connections" -gt 0 ] ; 
then
...