行コメント文字 "#"とシェルスクリプトの実際のコメント開始の間のスペース

行コメント文字 "#"とシェルスクリプトの実際のコメント開始の間のスペース

コメントのポンド記号と実際のコメントの間にスペースがあるシェルスクリプトがあります。

# 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の指定シェルでトークンを認識すると、

現在の文字が「#」の場合、その文字と次の<newline>より前(含まれていない)の後続のすべての文字はコメントとして削除されます。行を終える <newline> はコメントの一部とは見なされません。

答え2

私は空白が重要な殻を知りません。たとえば、次のように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.

具体的に言うみんな# 後に続く文字は無視されます。

個人的には#の後にスペースを追加することを好みます。

関連情報