このエントリーをはてなブックマークに追加


シェルスクリプトで複数行をまとめてコメントアウトする方法

シェルスクリプトのコメントは#ですが、#を利用した場合、コメントしたい範囲全てに記述する必要があり面倒です。
C言語やPHPなどの/* */に相当する範囲のコメントアウトをシェルスクリプトで実現する方法を以下に記述します。
尚、利用したディストリビューションはCentOS, シェルはbashを利用しています。


ヒアドキュメントを利用して複数行を一気にコメントアウト

ヒアドキュメントで指定した範囲は通常catコマンドなどに渡したりして利用しますね。
以下、端末から直接入力し実行した例です。

$ cat <<EOS
> hello
> world
> EOS
hello
world

今回、シェルスクリプトで複数行のコメントアウトを実現するにあたり、ヒアドキュメントを利用します。
上記の例ではcatを利用しましたが、複数行のコメントアウトを実現する場合、:を利用します。
:はヌルコマンドといいます。何も処理をせず、真を返却します。

  • サンプルコード
    #!/bin/bash
    
    echo 1
    : <<'#COMMENT'
    echo 2
    echo 3
    echo 4
    #COMMENT
    echo 5
  • 実行結果
    上記サンプルコードをcomment.shとして保存し、実行した結果です。
    $ chmod +x comment.sh
    $ ./comment.sh
    1
    5

つまり、:(ヌルコマンド)にヒアドキュメント指定した部分を渡しているので何もしない=コメントアウトされていることになります。

関連記事

参考記事(他サイト)


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:04