0

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

4

1 回答 1

1

周围应该有空间,[并且]最好将变量放在引号中,因此将您的行更新为

...
if [ "$connections" -gt 0 ] ; 
then
...
于 2013-11-11T20:10:49.407 回答