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_
答案 0 :(得分:1)
来自Bash手册:
如果重定向运算符是&lt;&lt; - ,则所有前导制表符都是 从输入行和包含分隔符的行中删除。这个 允许here脚本中的文档以自然方式缩进 方式。
也就是说,如果你用空格而不是制表符缩进这些行,它将会失败。
另一个看不见的问题是终止字必须单独出现在线上,周围没有任何东西。如果您使用<<-
而不是<<
,则唯一的例外是引导标签。因此,_EOF_
行上的尾随空格会这样做。
顺便说一句,测试确实表明Bash会容忍<<-
和终止词之间的空格,但它不会在Bash手册中显示为允许。这可能是一个可移植性问题。
答案 1 :(得分:0)