id:satob:20051226 のなかださんのコメント、
なかだ 『:は${VAR=expr}と組み合わせるのがidiomでしょう。
: ${PARAM1=foobar} ${PARAM2=hoge}』
の話。すなわち、Colon と Dollar Sign と Opening/Closing Brace と Equals の使いかた(Google は記号をクエリ文字列に使えないのが弱点だなぁ)。
- ${PARAM1=foobar} は「PARAM1 が undef (unset?) なら foobar を代入、そうでなければ何もしない」の意味。
- そのまま ${PARAM1=foobar} だけの行を書くと、シェルに「foobar: command not found」とか言われるので、シェルスクリプトでは困る *1
- セミコロンを置いておけば、実行されるのは「:」コマンドなので、普通に実行されるだけで何も起こらず、シェルも文句を言わない
- その上、引数にいくらでも上記の式を書ける
ということ。
参考: http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230580/
*1:$ で始まってるってことは、その変数の中身をそのままそこに書いたのと同じだから