Bash言語のコマンドラインでのスクリプティングにおいて、コメントの方法には実に色々なやり方があります。一行コメントや複数行、マルチラインのコメント、ちょっと面白い自慢したくなるようなやり方など、使い分けられると便利です。
Bashのコメント方法には様々な方法があります。使い分けられると便利ですよ。
#
を使った一般的なコメント
# comment here.
一般的なコメントです。
:
を使ったコメント
: comment
“何もしない”をする:
に渡されたアラグメンツは無視されます。しかしこちらは無視されない文字列もあるので注意が必要です。
例えば、
: comment here
みたいに一般的な文字、数字だけなら問題ないですが、
: `comment here`
のように特定の特殊記号が入っていると問答無益でエラーになり、運が悪いとシステムが壊れます。
しかし割と使い勝手がいいので、場所を考えて使います。
:
は何もしないをするわけなので、コメントをデバッグ的に出力できます。
例えば僕の使い方を紹介します。
僕はよく関数がどういうコードなのか、使い方は、引数は何を渡すか、みたいなことを忘れます。いちいち--help
を実装したりしてもいいんですけど面倒ですね。そこで
parsejson(){
: e.g. parsejson '[0]["title"]'
python3 -c "import json,sys;print(json.load(sys.stdin)${1})"
}
みたいに使い方をメモしておきます。
そして久しぶりにparsejson
を使おうと思ったときに、どう使うんだっけ、と少しでも不安になったら、type parsejson
でコードをそのコメントを含めて確認します。
yuis on ASUS at /mnt/c/pg$ type parsejson
parsejson is a function
parsejson ()
{
: e.g. parsejson '[0]["title"]';
python3 -c "import json,sys;print(json.load(sys.stdin)${1})"
}
ああ、parsejson '[0]["title"]'
みたいに使うのか、とわかるわけです。
: <<'EOT'
を使った汎用的なコメント
: <<'EOT'
comment here.
EOT
ヒアドキュメントを使用して、”何もしない”をする:
にパイプしています。
僕的には一番おすすめのコメントの仕方です。
前項の:
単体に比べて、こちらはどういう特殊文字が入っていてもヒアドキュメントなので問題ありません。複数行の長いコメントになる場合はこちらを利用します。
`を使ったインラインコメント
`# comment here`
yuis on ASUS at /mnt/c/pg$ echo this apple `# which is dark red` is pretty yummy.
this apple is pretty yummy.
長い一行のコードの途中でコメントを挿入したい、という場合はインラインコメントを使ってみましょう。
サブプロセスで動かしてるので少し負担がかかります。使い方に気をつけましょう。
なお、"$(# comment)"
は同じようには動かないので注意。
奥が深いですね。