シェルスクリプトの変数が空だったら指定の値にする時のTips
シェルスクリプトで変数が空の場合にだけ代入することができる便利な機能がある。
${variable:=value}
$variable
が空の場合のみvalue
が値に入ります。
しかし、実際に入力してみるとcommand not found
になる。
bash-4.3$ ${variable:=value} bash: value: command not found
これはなぜかというと、変数への代入と同時にシェルに対してその値を返すから。
value
という文字をシェルが実行しようとする。
こういう場合は
bash-4.3$ : ${variable:=value}
:
で返り値を無視してやればよいようだ。
related: シェル変数の定義状況に応じて任意の値を返す方法 - Qiita