shell脚本中的
line 6: warning: here-document at line 2 delimited by end-of-file (wanted `_EOF_')下面是代码:
#!/bin/bash
cat <<- _EOF_
test:
1. test
0. test test
_EOF_但这是对的。
#!/bin/bash
cat <<- _EOF_
test:
1. test
0. test test
_EOF_ 发布于 2014-02-10 16:02:11
根据巴什手册:
如果重定向运算符<-,则从输入行和包含分隔符的行中删除所有前导制表符字符。这使得shell脚本中的文档可以以一种自然的方式缩进。
也就是说,如果您用空格而不是制表符缩进这些行,它将失败。
另一个看不见的问题是,终止词必须单独出现在行上,周围什么都没有。唯一的例外是引导选项卡,如果您使用<<-而不是<<。因此,_EOF_行上的尾随空间就可以做到这一点。
顺便说一句,测试确实表明Bash可以容忍<<-和终止词之间的空间,但是它在Bash手册中是不允许的。这可能是一个可移植性问题。
发布于 2014-02-10 16:15:19
here document <<-的<<-选项取消了文档正文中的前导选项卡,但没有空格。
所以用选项卡替换空格,你的警告信息就会消失。
例子:
if true;
then
cat <<- _EOF_
test:
1. test
0. test test
_EOF_
fi参考链接
https://stackoverflow.com/questions/21681843
复制相似问题