#navi(../)
* シェルスクリプトで複数行をまとめてコメントアウトする方法 [#l020078f]

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

#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* ヒアドキュメントを利用して複数行を一気にコメントアウト [#n9c910b4]
ヒアドキュメントで指定した範囲は通常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

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

* 関連記事 [#ncc9c1cd]
-ヒアドキュメント関連~
--[[逆引きシェルスクリプト/ヒアドキュメント内の変数を展開しない方法]]
--[[逆引きシェルスクリプト/ヒアドキュメントをファイルに出力する方法]]
-:(ヌルコマンド)を利用した例~
--[[逆引きシェルスクリプト/シェルで無限ループ]]


* 参考記事(他サイト) [#b91ff2dc]
-[[シェルスクリプトで複数行コメントアウト>http://d.hatena.ne.jp/dyama/20101101/p1]]
#br
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
#br

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS