パラメータ展開 デフォルト値

パラメータのデフォルト値を指定

文法

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

$ 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                    # 実際の使いどころでは${パラメータ:-値}の方を多く使うと思われる

パラメータのデフォルト値を代入

文法

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

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

デフォルト値を変数にする

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

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

Last-modified: 2017-07-23 (日) 11:30:42 (458d)