使用环境变量获取另一个环境变量的值

时间:2021-05-18 20:04:42

标签: yaml bitbucket bitbucket-pipelines

使用 Bitbucket Pipelines 和我有像这样的存储库变量(不是部署变量):

DEV_DB_SERVER

QA_DB_SERVER

STG_DB_SERVER

在我的 bitbucket-pipelines.yml 脚本的这个阶段,我无法利用部署变量 - 因为你只能在一个步骤中公开它们,我试图用这样的方式替换存储库变量的第一部分:

echo ${"${ENV}_DB_SERVER"} 将输出每个环境的实际服务器地址 - 取决于目标环境:$ENV。顺便说一句,上述语法产生:bash: DB_SERVER=${"$ENV_DB_SERVER"}: bad substitution 但我尝试了无数变体都没有成功。

我试图避免使用巨大的 switchif 语句并清楚地拼写每个变量。有谁知道这样的事情是否可行以及如何实现?

1 个答案:

答案 0 :(得分:0)

虽然不完全是我所追求的,但我能够通过每个环境变量一行来实现我的目标,这比为每个环境变量分别提及每个(27 个)要好得多我们的 4 个环境:

- tmp="${ENV}_DB_SERVER" && export DB_SERVER=${!tmp}

可能有一种更优雅的方式来实现这一点,如果您知道,我希望得到您的反馈,但目前有效。