这里-文档给出了“文件的意外结束”错误

这里-文档给出了“文件的意外结束”错误

我需要我的脚本从终端发送电子邮件。根据我在网上看到的和其他许多地方,我把它格式化如下:

/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在里面。我试过替换EOF其他事情(ENDOFMESSAGEFINISH等等)但没有结果。我在网上找到的几乎所有东西都是这样做的,而且我在bash是个新手,所以我很难自己弄清楚。有人能帮忙吗?


扬帆大鱼
浏览 667回答 3
3回答

qq_笑_17

这个EOF令牌必须位于行的开头,不能将其与代码块一起缩进。如果你写<<-EOF你可以缩进它,但它必须是缩进的。附签字符不是空格。因此,即使使用代码块,它也可能不会结束。还要确保没有空格。后这个EOF电话线上有记号。

MM们

请尝试删除前面的空格。EOF:-/var/mail&nbsp;-s&nbsp;"$SUBJECT"&nbsp;"$EMAIL"&nbsp;<<-EOF使用<tab>而不是<spaces>对于ident和使用<-EOF很好。这个"-"移除<tabs>,不是<spaces>但至少这是可行的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python