基于环境变量的条件赋值

基于环境变量的条件赋值

在 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

您可以使用&&||运算符

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

相关内容