当我尝试手动运行下面的脚本时,我收到以下2个错误输出。我不明白的是为什么它抱怨它找不到')'
的匹配字符?好像我在then/fi
中提取了什么并把它放到一个文件中并自己运行它就可以正常工作,就像它发送电子邮件一样。
./rsnapshot-log-checker: line 15: unexpected EOF while looking for matching `)'
./rsnapshot-log-checker: line 25: syntax error: unexpected end of file
grep "ERROR" /var/log/rsnapshot.log | \
while read line ; do
echo "$line" | grep "ERROR"
if [ $? = 0 ]
then
to=warning@bla.com
subject="Error rsnapshot - `hostname`"
from=`hostname`@bla.com
daemail=$(cat <<! <-- line 15
From: $from
To: $to Subject:
$subject You might want to check this... !) <-- maching haracter for )
echo "$daemail" | /usr/sbin/sendmail -t
fi
done
<-- line 25
答案 0 :(得分:2)
此处的文件分隔符has to appear on a line by itself。
答案 1 :(得分:1)
您正在第15行使用Here文档重定向运算符(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; 使用以下:
daemail=$(cat
echo "From:" $from
echo "To:" $to "Subject:"
echo $subject "You might want to check this... !")