寻找匹配的`)'意外的EOF

时间:2016-06-10 11:30:12

标签: linux shell

当我尝试手动运行下面的脚本时,我收到以下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

2 个答案:

答案 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... !")