Неожиданный конец файла в BASH - PullRequest
3 голосов
/ 29 июня 2011

Написание простого bash-скрипта для проверки утром: одна часть - это сносить некоторые html-файлы и проверять их существование.Другая часть - обеспечение наличия некоторых локальных файлов и отправка по электронной почте, если их нет.Проблема, с которой я сталкиваюсь, заключается в том, что я получаю «синтаксическую ошибку: неожиданный конец файла», и я не могу понять, почему это происходит.Вот упрощенная версия кода:

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 -x я вижу, что доходит до назначения количества отчетов для переменной "numoffiles", но тогда он просто считает, что этоконец файла.У кого-нибудь есть предложения?

1 Ответ

6 голосов
/ 29 июня 2011

До конца метки heredoc не должно быть пробелов:

   EOF
^^^

Измените его на

EOF
...