ebo*_*oni 3 string bash heredoc syntax-error
写一个简单的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
Run Code Online (Sandbox Code Playgroud)
从使用sh -x我可以看到它将报告的数量分配给var"numoffiles",但它只是认为这是文件的结尾.有没有人有任何建议?
在heredoc标签结束之前不应该有任何空格:
EOF
^^^
Run Code Online (Sandbox Code Playgroud)
将其更改为
EOF
Run Code Online (Sandbox Code Playgroud)