写一个简单的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我可以看到它将报告的数量分配给var“numoffiles”,但它只是认为这是文件的结尾。有没有人有任何建议?
答案 0 :(得分:6)
在heredoc标签结束之前不应该有任何空格:
EOF
^^^
将其更改为
EOF