0

メールアラートを送信するために、次のシェルスクリプトを用意しています。for ループしかない場合はすべて正常に動作しますが、if 条件を追加しようとすると動作しないようで、毎回 null メッセージ本文が返されます。スクリプトのスニペットは次のとおりです。

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 ループに入っていないことがわかりました。

誰かが私に何が欠けているか教えてもらえますか?

前もって感謝します。

/日

4

1 に答える 1

1

[周りにスペースが必要であり]、変数を引用符で囲む方が良いので、行を次のように更新します

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