Help us understand the problem. What is going on with this article?

bashで複数行コメントアウトする方法

More than 5 years have passed since last update.

概要

bashで複数行コメントアウトするときに
全部の行の頭に「#」を入力してたのは…私です。

bashで複数行コメントアウトするにはどうしたらいいの?

:<< を組み合わせればできる!

bash
: <<'#__CO__'
aaa
bbb
ccc
ddd
#__CO__

: (何もしない、戻り値も0)

while true
も以下のように表せる

bash
while :
do
  echo "何かしらの処理"
done

<< (ヒアドキュメント)

<< の後に続く文字列が入力されるまでの入力を
まとめて標準入力としてコマンドに渡すことができる

$ cat << __EOF__
> aaa
> bbb
> ccc
> ddd
> __EOF
> ___
> __EOF__

と入力すると

aaa
bbb
ccc
ddd
__EOF
___

と返って来る。

//20140328追記

: なしでもコメントアウトできる!

<< "#__CO__"
aaa
bbb
ccc
ddd
#__CO__

: あり?なし? << "#__CO__"<< "__CO__"

サンプル作ってbash -x してみる

サンプル

:あり、#あり

colon_on_sharp_on.sh
#!/bin/bash
# : あり
# #__CO__

: << "#__CO__"
date
DATE=`date +%Y%m%da && date`
echo $DATE
aaa
#__CO__

:あり、#なし

#!/bin/bash
# : あり
# __CO__

: << __CO__
date
DATE=`date +%Y%m%d && date`
echo $DATE
aaa
__CO__

:なし、#あり

colon_off_sharp_on.sh
#!/bin/bash
# : なし
# #__CO__

<< "#__CO__"
date
DATE=`date +%Y%m%d && date`
echo $DATE
aaa
#__CO__

:なし、#なし

#!/bin/bash
# : なし
# __CO__

<< __CO__
date
DATE=`date +%Y%m%d && date`
echo $DATE
aaa
__CO__

結果

:あり、#あり

「何もしない」を『実行』する
$ $ bash -x colon_on_sharp_on.sh 
+ :
$

:あり、#なし

「何もしない」を『実行』するうえ、コメントアウトしたはずの行もデバッグに表示される
$ bash -x colon_on_sharp_off.sh 
+ :
++ date +%Y%m%d
++ date
$

:なし、#あり

全く何も出ない!
$ bash -x colon_off_sharp_on.sh 
$

:なし、#なし

コメントアウトしたはずの行もデバッグに表示される
$ bash -x colon_off_sharp_off.sh 
++ date +%Y%m%d
++ date
$

まとめ

  • :
    • (デバッグ時も含めて)明示的に「何もしない」を通った確認をするなら 「: 有り」
    • 本当になにもしないで!ってひとは 「:無し」
  • #
    • 必要。
    • 付けないと、コメントアウトしたつもりがシェルは中身を解析(?)している

コメントアウト、って意味では、:無し、でいいかも。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした