【シェルスクリプト】パラメータ展開方法まとめ
シェルスクリプトでのパラメータ展開方法は色々あるので知識整理のためにまとめます。
パラメータ展開方法まとめ
パラメータ自体が存在しない、または、空白の場合にデフォルト値を展開
# ${パラメータ名:-値}
# 例
$ a= ; echo "${a:-hoge}";
hoge
パラメータ自体が存在しない場合にデフォルト値を指定
# ${パラメータ名-値}
# 例
$ a= ; echo "${a-hoge}";
$ echo "${b:-hoge}"
hoge
パラメータ自体が存在しない、または、空白の場合にデフォルト値を代入
# ${パラメータ名:=値}
# 例
$ a= ; echo "${a:=hoge}";
hoge
$ echo $a
hoge #パラメータaにhogeが代入されている
パラメータ自体が存在しない場合にデフォルト値を代入
$ a= ; echo "${a=hoge}";
$ echo $a
# パラメータaの値は空白のまま
$ echo "${b=hoge}"
hoge
$ echo $b
hoge # パラメータbにhogeが代入されている
$ b=foo; echo "${b=hoge}";
foo
パラメータに値が設定されている場合のみ指定値を展開する
# ${パラメータ名:+値}
# 例
$ a=foo; echo "${a:+hoge}"
hoge
# パラメータが空白の場合は展開されない
$ a=; echo "${a:+hoge}"
パラメータが存在する場合のみ指定値を展開する
# ${パラメータ名:+値}
# 例
$ a=foo; echo "${a+hoge}"
hoge
# パラメータが空白の場合も指定値に展開される
$ a=; echo "${a+hoge}"
hoge
# パラメータが存在しない場合は展開されない
$ echo "${b+hoge}";