我无法在变量中使用动态变量或变量。
基本上,CI服务器在repo上设置了一堆环境变量。 他们从一个repo进行多次部署,并根据分支名称读取正确的env变量,并在配置文件中回显变量值,以便以后由应用程序代码使用。
应用程序代码只读取一组通用值,无论environemnt如何,例如DB_USERNAME
所以,像这样......
CI服务器ENV变量
DEV_DB_USERNAME
STG_DB_USERNAME
PRD_DB_USERNAME
DEV_LAB_DB_USERNAME
STG_LAB_DB_USERNAME
PRD_LAB_DB_USERNAME
分支名称可以是deploy-dev,deploy-stg,deploy-prd或lab-dev,lab-stg,lab-prd之一。
所以我有一个bash脚本,我设置分支名称和ENV Var用于测试,如下所示:
#!/usr/bin/env bash
export TRAVIS_BRANCH="deploy-dev"
export DEV_DB_USERNAME="goodguy"
IFS="-" read TR_BRANCH DB_ENV TRAVIS_BRANCH <<< "$TRAVIS_BRANCH"
DB_ENV_UC=`echo "$DB_ENV" |tr '[:lower:]' '[:upper:]'`
if [[ ${TR_BRANCH} == "deploy" ]]
then
DB_USERNAME=\$${DB_ENV_UC}_DB_USERNAME
else
DB_USERNAME=\$${DB_ENV_UC}_LAB_DB_USERNAME
fi
echo "username is $DEV_DB_USERNAME"
echo "username is $DB_USERNAME"
第一个echo返回字符串:goodguy
第二个echo返回字符串$ DEV_DB_USERNAME
如何获取$ DB_USERNAME返回的goodguy值?