Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
シェル変数のデフォルト値を設定する
#!/bin/bash
foo=${1:-hoge}
echo $foo #$1がなかったらhogeをデフォルト値としてfooに代入する
#var自身にデフォルト値としてhogeを代入としたいので以下のように書きたい
${var:=hoge} #このままでは、hogeが展開されてしまって、hogeなんてコマンドはないとシェル怒られる
echo "1:$var"
var=
echo ${var:=hoge} > /dev/null #echoで変数展開をしつつ不要な出力は抑える
echo "2:$var"
var=
: ${var:=hoge} #何もしないコマンド:で変数展開のみを行う
echo $var #変数展開後、varにhogeが代入される
echo "3:$var"
var=
: ${var:-hoge}
echo $var #変数展開後、varにhogeが代入されない
echo "4:$var"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.