2011-06-29 15 views
3

午前中に私のためにいくつかのチェックを行うための簡単なbashスクリプトを書く: 一部のhtmlファイルをプルダウンして、それらが存在することを確認しています。 もう1つの部分は、ローカルファイルが存在することを保証し、そうでない場合は電子メールで送信します。 私が直面している問題は、「構文エラー:予期せぬファイルの終わり」が表示されていることです。なぜそれが起こっているのか理解できません。ここ は、コードの簡易版である:BASHのファイルが予期せず終了する

for myHost in $HOSTS 
do 
    result=$(wget -T $TIMEOUT -t 1 $myHost -O /dev/null -o /dev/stdout) 
    result2=$(echo $result | grep "awaiting response") 
    connected=$(echo $result | grep "404"); 
    if [ "$connected" != "" ]; then 
    for myEMAIL in $EMAIL 
    do 
     echo -e "$(date) - $myHost is down! \n This is an automated message." | mailx -r "box.email.com" -s "$SUBJECT" $myEMAIL 
    done 
    fi 
done 

numoffiles=`find . -maxdepth 1 -mtime -1 | grep -i .html | wc -l` 
if [ "$numoffiles" -ne 5 ]; then 
    FILE=$(find . -maxdepth 1 -mtime -1 -print| grep -i .html) 
    mailx -r "box.email.com" -s "FILE MISSIN" "$EMAIL" << EOF 
    EOF 
fi 

のshを使用してから、私はそれが「numoffiles」VARへの報告書の番号を割り当てるに取得することがわかります-x、しかし、それはちょうどそれが最後であると考えていますファイルの誰にも何か提案がありますか?

答えて

6

ヒアドキュメントラベルの終了前にスペースがあってはならない。

EOF 
+0

アメージングへ

EOF ^^^ 

は変更にそれを、私はそれを逃した信じることができません。あなたの助けをありがとう – eboni

+3

@ user185572:ようこそ。回答を受け入れたものとしてマークすることを忘れないでください。 – codaddict

関連する問題