Jon*_*nik 19 bash shell-script environment-variables assignment
在 bash 脚本中,我分配了一个局部变量,以便该值取决于外部的全局环境变量 ( $MYAPP_ENV
)。
if [ "$MYAPP_ENV" == "PROD" ]
then
SERVER_LOGIN=foobar123@prod.example.com
else
SERVER_LOGIN=foobar987@test.example.com
fi
Run Code Online (Sandbox Code Playgroud)
是否有更短(但干净)的方式来编写上述作业?(大概使用某种条件运算符/内联 if。)
slm*_*slm 27
您还可以使用 case/switch inbash
来执行此操作:
case "$MYAPP_ENV" in
PROD) SERVER_LOGIN="foobar123@prod.example.com" ;;
*) SERVER_LOGIN="foobar987@test.example.com" ;;
esac
Run Code Online (Sandbox Code Playgroud)
或者这个方法:
[ "$MYAPP_ENV" = PROD ] &&
SERVER_LOGIN=foobar123@prod.example.com ||
SERVER_LOGIN=foobar987@test.example.com
Run Code Online (Sandbox Code Playgroud)
cuo*_*glm 10
尝试:
[ condition ] && var=value_when_true || var=value_when_false
Run Code Online (Sandbox Code Playgroud)
如果您的赋值是数字,则可以使用bash
三元运算:
(( assign_condition ? value_when_true : value_when_false ))
Run Code Online (Sandbox Code Playgroud)
您可以使用&&
和||
运算符
[ "$MYAPP_ENV" == "PROD" ] && SERVER_LOGIN=foobar123@prod.example.com || SERVER_LOGIN=foobar987@test.example.com
Run Code Online (Sandbox Code Playgroud)