【シェルスクリプト】パラメータ展開方法まとめ

2020年10月17日

シェルスクリプトでのパラメータ展開方法は色々あるので知識整理のためにまとめます。

パラメータ展開方法まとめ

パラメータ自体が存在しない、または、空白の場合にデフォルト値を展開

# ${パラメータ名:-値}
# 例
$ 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}";