シェルスクリプトによく : を見かけるのですが、どのような挙動になるのかわからなかったため調べてみました。
":" について
:(コロン)は1文字のコマンドのようです。
実行結果
実行すると終了ステータス 0 (true)を返します。
$ : ; echo $? 0
用途
引数が与えられる
引数を渡しても何も起きませんが、引数を無視する役目を見出すことが出来ます。 なのでコメント代わりに使えます。
for command ; : ここの実行を待つ ; do : ここは何もしない done
変数の初期化
調べてみたら以下のような使い方ができるようです。
例 | 処理内容 |
---|---|
${parameter:-other} | $parameter が未定義か空の場合、other を展開 |
${parameter:=other} | $parameter が未定義か空の場合、other を代入してそれを展開 |
${parameter:?other} | $parameter が未定義か空の場合、other を標準エラー出力に出力して終了 |
${parameter:+other} | $parameter が未定義か空の場合以外、other を展開 |
true (関数)の代替
無限ループに使えます。
while : ; do echo 1 ; sleep 1 ; done