早上编写一个简单的 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“numofiles”,但它只是认为这是文件的结尾。有人有什么建议吗?