* パラメータ展開 デフォルト値 [#ba25fa81]

** パラメータのデフォルト値を指定 [#n7c2aa54]

*** 文法 [#n0d52228]

 ${パラメータ-値}
 ${パラメータ:-値}

*** 例 [#ffff13c0]
 $ FOO=foo              # FOOにfooを代入
 $ echo ${FOO-bar}      # FOOに値があるので、
 foo                    # その値fooが表示される
 $ echo ${FOO1-bar}     # FOO1という変数は存在しない(値がない)ので、
 bar                    # デフォルト値barが表示される
 $ echo $FOO1           # なお、この時にFOO1という変数が新たに作られているわけではない
 (空)                   # この変数が作られるか否かが${パラメータ-値}と${パラメータ=値}の違い
 $ FOO=                 # また、FOOが空文字の場合、
 $ echo ${FOO:bar}      # ${パラメータ-値}は、
 (空)                   # その空文字が表示される
 $ echo ${FOO:-bar}     # これを避けるには${パラメータ:-値}とする
 bar                    # 実際の使いどころでは${パラメータ:-値}の方を多く使うと思われる

** パラメータのデフォルト値を代入 [#ed277de3]
*** 文法 [#p1eff170]

 ${パラメータ=値}
 ${パラメータ:=値}

*** 例 [#ef088670]

 $ FOO=foo               # ${パラメータ=値}と${パラメータ-値}は似ていて、
 $ echo ${FOO:=bar}      # FOOに値があるので、
 foo                     # それが表示され、
 $ echo ${FOO1:=bar}     # FOO1に値がないので
 bar                     # デフォルト値barが表示される
 $ echo $FOO1            # 違うのは、${パラメータ=値}を実行するとそのパラメータに値が代入される点
 bar                     # つまり、FOO1はすでに値を持つ変数となっている

** デフォルト値を変数にする [#u6cbc53b]

 $ FOO=                  # ${パラメータ-値}の値を変数にするのは構わない
 $ BAR=bar               # この場合、FOOが空、BARがbarなので、
 $ echo ${FOO:-$BAR}     # $BARが評価されて、
 bar                     # barが表示される



トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS