Skip to content

Instantly share code, notes, and snippets.

@doi-t
Last active April 2, 2023 11:35
Show Gist options
  • Star 26 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save doi-t/7853853 to your computer and use it in GitHub Desktop.
Save doi-t/7853853 to your computer and use it in GitHub Desktop.
シェル変数のデフォルト値を設定する
#!/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