【发布时间】:2013-09-10 17:34:38
【问题描述】:
我需要我的脚本从终端发送电子邮件。根据我在这里和网上许多其他地方看到的内容,我将其格式化为:
/var/mail -s "$SUBJECT" "$EMAIL" << EOF
Here's a line of my message!
And here's another line!
Last line of the message here!
EOF
但是,当我运行它时,我会收到以下警告:
myfile.sh: line x: warning: here-document at line y delimited by end-of-file (wanted 'EOF')
myfile.sh: line x+1: syntax error: unexpected end of file
...其中第 x 行是程序中最后写入的代码行,第 y 行是其中包含/var/mail 的行。我尝试用其他东西(ENDOFMESSAGE、FINISH 等)替换 EOF,但无济于事。我在网上找到的几乎所有东西都是这样完成的,而且我对 bash 真的很陌生,所以我很难自己弄清楚。有人可以提供任何帮助吗?
【问题讨论】:
-
EOF行是否缩进?它必须在行首。 -
确实如此,但仅限于整个语句的嵌套。所以它必须一直向左?
-
另外,确保没有尾随字符(包括回车!)
-
如果你缩进只有个制表符,你可以使用
<<-EOF-- gnu.org/software/bash/manual/bashref.html#Here-Documents