我想评估一个变量,其名称需要动态评估另一个变量,即 varENVIRONMENT
可以是prod
, stg
, 或test
,所以我有 3 个 url:
URL_PROD=https://myproduction.com
URL_STG=https://mystaging.com
URL_TEST=https://mytest.com
所以我想检索 的值URL_STG
。
以下不起作用
echo $"URL_${ENVIRONMENT^^}"
答案1
使用最近的bash
或ksh93
,创建一个关联数组来保存 URL:
URL=( [prod]=https://myproduction.com
[stg]=https://mystaging.com
[test]=https://mytest.com )
url_type=test
echo "${URL[$url_type]}"
这将输出测试 URL。
答案2
除了 @Kusalananda 提出的关联数组的相关答案之外,我还提出了这个:
ENDPOINT=URL_${ENVIRONMENT^^}
MY_URL="${!ENDPOINT}"
答案3
对我有用的是:
eval echo \$URL_${ENVIRONMENT^^}