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]