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

Using an Environment Variable to get the Value of Another Environment Variable

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

DEV_DB_SERVER

QA_DB_SERVER

STG_DB_SERVER

在我的 bitbucket-pipelines.yml 脚本的这个阶段,我无法利用 Deployment 变量 - 因为您只能在一个步骤中公开它们,我正在尝试替换 Repository vars 的第一部分,例如这个:

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

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

虽然不完全是我想要的,但我 能够通过每个环境变量一行来实现我的目标,这比提及每个(27 ea. ) 离散地用于我们的 4 个环境中的每一个:

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

可能有更优雅的方法来完成此操作,如果您知道的话,我希望您能提供反馈,但这目前有效。