gpt4 book ai didi

bash - heredoc间距?

转载 作者:行者123 更新时间:2023-11-29 09:45:01 25 4
gpt4 key购买 nike

这是我知道的一个小问题。我们正在用 Ruby 编写 Bash 高亮器,需要实现 heredoc 高亮。我见过的两种格式是这样的。注意 EOF

之前的空格
cat <<EOF
Hello
World
EOF

cat << EOF
Hello
World
EOF

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

最佳答案

POSIX Shell Command Language specification明确指定文件描述符编号(如果有的话)“紧接在重定向运算符之前”;但它没有类似的要求重定向运算符紧接在单词之前。标记识别规则意味着重定向运算符和单词之间的任何空格都将被丢弃,因此我认为任何正确的实现都应该接受这样的空格。 (诚​​然,如果不是相同的标记识别规则暗示文件描述符编号和重定向运算符之间的空格是相同的,这会更让人放心。)

尽管 Bash 引用手册 的 heredocs 示例没有在单词前包含空格,但它确实给出了其他重定向示例,确实在单词前包含了空格这个词,而且 POSIX 规范或 Bash 引用手册 中没有任何理由认为 heredocs 的词在这方面与任何其他类型的重定向中的词不同,所以我不'认为它应该被认为是不好的做法。我认为您的语法高亮器应该同时支持两者,除非该项目的目标之一是为此类事物强制执行某种标准样式。

关于bash - heredoc间距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661025/

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