環境変数による条件付き割り当て

環境変数による条件付き割り当て

Bashスクリプトは、値が外部グローバル環境変数()に依存するようにローカル変数を割り当てます$MYAPP_ENV

if [ "$MYAPP_ENV" == "PROD" ]
then
    [email protected]
else
    [email protected]
fi

上記の課題を書くより短いですが、よりきれいな方法がありますか? (おそらく、ある種の条件演算子/インラインifを使用したでしょう。)

答え1

ケース/スイッチを使用してこれを行うこともできますbash

case "$MYAPP_ENV" in
 PROD) SERVER_LOGIN="[email protected]" ;;
    *) SERVER_LOGIN="[email protected]" ;;
esac

または、この方法は次のとおりです。

[ "$MYAPP_ENV" = PROD ] &&
   [email protected] ||
   [email protected]

答え2

努力する:

[ condition ] && var=value_when_true || var=value_when_false

割り当てが数値の場合、bash三項演算を使用できます。

(( assign_condition ? value_when_true : value_when_false ))

答え3

&&and||演算子を使用できます。

[ "$MYAPP_ENV" == "PROD" ] && [email protected] || [email protected]

関連情報