検討する
echo \ # this is a comment
foo
これは与える:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Webでいくつか検索した後、姉妹サイトのStack OverflowでDigitalRossのソリューションを見つけました。だからできること
echo `: this is a comment` \
foo
または代わりに
echo $(: this is a comment) \
foo
ただし、DigitalRossは、これらのソリューションが機能する理由を説明しませんでした。説明をお願いします。彼はコメントで答えた:
以前は、
gotoこのように指定されたラベルに分岐するシェルコマンドがあり:ました。gotoなくなっていますが、まだ使用できる: whatever構文を...:今すぐ解析されたコメントの一種です。
しかし、移植性の議論を含め、詳細とコンテキストが欲しいです。
もちろん、他のソリューションがある場合は、それも良いでしょう。
前の質問「シェルスクリプトで複数行のコマンドをコメントする方法」も参照してください。。
以下の議論からメッセージを持ち帰ってください。これ`: this is a comment`は単なるコマンド置換です。の出力: this is a commentは何もなく、それはの場所に置かれ`: this is a comment`ます。
より良い選択は次のとおりです。
echo `# this is a comment` \
foo