gpt4 book ai didi

shell 脚本关于 "cat <<- _EOF_"

转载 作者:行者123 更新时间:2023-12-04 02:30:15 25 4
gpt4 key购买 nike

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_

最佳答案

来自 Bash 手册:

If the redirection operator is <<-, then all leading tab characters are stripped from input lines and the line containing delimiter. This allows here-documents within shell scripts to be indented in a natural fashion.



也就是说,如果您使用空格而不是制表符来缩进这些行,它将失败。

另一个看不见的问题是终止词必须单独出现在行上,周围没有任何东西。唯一的异常(exception)是前导标签,如果你使用 <<-而不是 << .因此, _EOF_ 上的尾随空格行会这样做。

顺便说一下,测试确实表明 Bash 可以容忍 <<- 之间的空格。和终止词,但它在 Bash 手册中没有显示为允许的。这可能是一个可移植性问题。

关于shell 脚本关于 "cat <<- _EOF_",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21681843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com