bash で単一のコマンドを使用してシェル変数にデフォルト値を割り当てる 質問する

bash で単一のコマンドを使用してシェル変数にデフォルト値を割り当てる 質問する

bash (3.00) シェル スクリプトには、変数が設定されていない場合にデフォルトを割り当てる変数のテストが多数あります。例:

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

これを 1 行で実行するための構文、たとえば三項演算子のようなものがあったように思います。

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

(それがうまくいかないことはわかっていますが...)

私は気が狂っているのでしょうか、それともそのようなものが存在するのでしょうか?

ベストアンサー1

実際、あなたが投稿したものと非常に近いです。Bashパラメータ拡張これを達成するために。

割り当てられた値を取得する場合、またはdefault値が欠落している場合は、次のようにします。

FOO="${VARIABLE:-default}"  # FOO will be assigned 'default' value if VARIABLE not set or null.
# The value of VARIABLE remains untouched.

同じことを行うには、次のように割り当てdefaultますVARIABLE

FOO="${VARIABLE:=default}"  # If VARIABLE not set or null, set it's value to 'default'. 
# Then that value will be assigned to FOO

おすすめ記事