带反斜杠的 Heredoc
Heredoc with backslash
有什么区别
cat >test.txt <<\EOF
hello
world
EOF
和
cat >test2.txt << EOF
hello
world
EOF
我正在编写基于 ANTLR 的语法着色,<<
之后的 \
令我恼火(在示例文件中找到)。这是什么意思?我可以像 -
这样的语法着色忽略它吗?
来自POSIX standard on here-document syntax:
If any part of word [the thing after <<
- GD] is quoted, the
delimiter shall be formed by performing quote removal on word, and
the here-document lines shall not be expanded. Otherwise, the
delimiter shall be the word itself.
所以...您是否为此处文档中的 shell 扩展着色?也就是说,在这样的事情中:
cat >test2.txt << EOF
hello $somevar
world $(somecommand)
EOF
您是否将 $somevar
和 $(somecommand)
分别着色为变量和命令扩展?如果是这样,如果分隔符被引号或转义,则需要禁用它。
有什么区别
cat >test.txt <<\EOF
hello
world
EOF
和
cat >test2.txt << EOF
hello
world
EOF
我正在编写基于 ANTLR 的语法着色,<<
之后的 \
令我恼火(在示例文件中找到)。这是什么意思?我可以像 -
这样的语法着色忽略它吗?
来自POSIX standard on here-document syntax:
If any part of word [the thing after
<<
- GD] is quoted, the delimiter shall be formed by performing quote removal on word, and the here-document lines shall not be expanded. Otherwise, the delimiter shall be the word itself.
所以...您是否为此处文档中的 shell 扩展着色?也就是说,在这样的事情中:
cat >test2.txt << EOF
hello $somevar
world $(somecommand)
EOF
您是否将 $somevar
和 $(somecommand)
分别着色为变量和命令扩展?如果是这样,如果分隔符被引号或转义,则需要禁用它。