存在 shell 脚本,其中注释的井号和实际注释之间有一个空格
# a comment at the beginning of a line
echo foo # a comment trailing after a command
以及其他没有的
#another comment at the beginning of a line
echo bar #another comment trailing after a command
这个决定是否会对脚本的实际执行产生某种影响,或者它(只是)是一个编码风格问题?
答案1
没有非风格上的差异;POSIX 指定当识别 shell 中的令牌时,
如果当前字符是“#”,则该字符以及下一个 <newline> 之前(但不包括)的所有后续字符都将作为注释被丢弃。结束行的 <newline> 不被视为注释的一部分。
答案2
我不知道有哪个 shell 中的空格很重要。例如,其中man bash
说道:
In a non-interactive shell, or an interactive shell in which
the interactive_comments option to the shopt builtin is enabled
(see SHELL BUILTIN COMMANDS below), a word beginning with #
causes that word and all remaining characters on that line to
be ignored.
它特别指出全部# 后面的字符将被忽略。
就我个人而言,我更喜欢在#后面加一个空格。