tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【シェルスクリプト】`{`(波括弧)を使った変数の特殊参照

はじめに

シェルスクリプトの特殊参照?(呼び方知りませんでした)についてメモ

こんなん

  • vars_sample.sh
# nullを代入
VAR=
echo $VAR # カラ


# VARが未使用の場合に限り変数VARへ文字列hogeを代入&aaaを返却
VAR=${VAR=hoge}
echo $VAR # カラ


# VARが未使用もしくはNULLの場合に限り変数VARへ文字列hogeを代入&aaaを返却
VAR=${VAR:=hoge}
echo $VAR # hoge

参考までに

参考サイトをまんま拝借させて頂くのですが、こんな感じらしいです。
へー、という感じ。

参照方法 参照結果
${VAR=aaa} 変数 VAR が未使用の場合に限り、変数VARへ文字列「aaa」を代入し文字列「aaa」を返す。変数VARがNULL値を含み既に使用されている場合は、変数 VAR への代入を行わず、変数 VAR の値を返す。
${VAR:=aaa} 変数 VAR が未使用もしくは NULL の場合に限り、変数 VAR へ文字列「aaa」を代入し文字列「aaa」を返す。 変数 VAR が NULL 値の場合を除き、既に使用されている場合は変数 VAR への代入を行わず、変数 VAR の値を返す。
${VAR-aaa} 変数 VAR が未使用の場合に限り、文字列「aaa」を返す。変数 VAR が NULL 値を含み既に使用されている場合は、変数 VAR の値を返す。 また、変数 VAR が使用済み・未使用に関わらず、変数 VAR への代入は行われない。
${VAR:-aaa} 変数 VAR が未使用もしくは NULL 値の場合に限り、文字列「aaa」を返す。変数 VAR が NULL 値以外の値で既に使用されている場合は、変数 VAR の値を返す。 また、変数 VAR が使用済み・未使用に関わらず、変数 VAR への代入は行われない。
${VAR+aaa} 変数 VAR が NULL 値も含み既に使用されている場合に限り、文字列「aaa」を返す。変数 VAR が未使用の場合は、NULL 値を返す。 また、変数 VAR が使用済み・未使用に関わらず、変数 VAR への代入は行われない。
${VAR:+aaa} 変数 VAR が NULL 値以外で既に使用されている場合に限り、文字列「aaa」を返す。変数 VAR が NULL 値もしくは未使用の場合は、NULL 値を返す。 また、変数 VAR が使用済み・未使用に関わらず、変数 VAR への代入は行われない。
参考

おわり

またひとつ勉強になりました。