heredoc间距?

2 bash terminal heredoc

这是一个我知道的小问题.我们正在用Ruby写一个Bash荧光笔,需要实现heredoc高亮显示.我见过的两种格式是这样的.注意之前的空间EOF

cat <<EOF
Hello
World
EOF

cat << EOF
Hello
World
EOF
Run Code Online (Sandbox Code Playgroud)

问题是,在第一个之前使用空格是不正确/非官方/不良做法EOF

rua*_*akh 5

POSIX Shell命令语言规范明确规定了文件描述符数,如果有的话,"刚好先重定向操作"; 但它没有类似的要求,重定向操作符紧接在单词之前.令牌识别规则意味着在重定向操作符和单词之间将丢弃任何空格,因此我认为任何正确的实现都应该接受这样的空格.(不可否认,如果不是相同的令牌识别规则对文件描述符号和重定向操作符之间的空格有同样的意义,那么这将更令人放心.)

虽然猛砸参考手册的用于here文档的例子不包含单词之间有一个空格,它确实给其他例子与重定向包括无论是在POSIX规范字前的空间,并没有什么或猛砸参考手册提供任何有理由认为heredocs的词在这方面与任何其他类型的重定向中的词不同,所以我不认为它应该被认为是不好的做法.我认为你的语法高亮显示器应该支持两者,除非项目的目标之一是为这些事情强制执行某种标准样式.