变量扩展中的变量

变量扩展中的变量

我想评估一个变量,其名称需要动态评估另一个变量,即 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

使用最近的bashksh93,创建一个关联数组来保存 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^^}

相关内容