1. ホーム
  2. バッシュ

[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。

2022-03-23 19:50:07

質問

bash (3.00) のシェルスクリプトで、変数が設定されていない場合、デフォルトを割り当てるような変数のテストを一通り行っています。

if [ -z "${VARIABLE}" ]; then 
    FOO='default'
else 
    FOO=${VARIABLE}
fi

これを1行で行うには、三項演算子に似たような構文があるように記憶しています。

FOO=${ ${VARIABLE} : 'default' }

(うまくいかないとは思いますが...)

私がおかしいのか、それともそんなものが存在するのか?

解決方法は?

あなたが投稿した内容に非常に近いです、実際。というものを使うことができます。 Bashのパラメータ展開 を使えば、これを実現することができます。

代入された値を取得するには、または default がない場合は

FOO="${VARIABLE:-default}"  # If variable not set or null, use default.
# If VARIABLE was unset or null, it still is after this (no assignment done).

または defaultVARIABLE を同時に表示します。

FOO="${VARIABLE:=default}"  # If variable not set or null, set it to default.