Além da resposta relacionada às arrays associativas proposta por @Kusalananda, também cheguei a essa conclusão:
ENDPOINT=URL_${ENVIRONMENT^^}
MY_URL="${!ENDPOINT}"
Eu quero avaliar uma variável, cujo nome precisará avaliar dinamicamente outro variável, ou seja, o var ENVIRONMENT
pode ser prod
, stg
ou test
, então eu tenho 3 URLs:
URL_PROD=https://myproduction.com
URL_STG=https://mystaging.com
URL_TEST=https://mytest.com
então eu quero recuperar o valor de URL_STG
.
O seguinte não funciona
echo $"URL_${ENVIRONMENT^^}"
Usando um bash
ou ksh93
recente, crie um array associativo para manter os URLs:
URL=( [prod]=https://myproduction.com
[stg]=https://mystaging.com
[test]=https://mytest.com )
url_type=test
echo "${URL[$url_type]}"
Isso gerará o URL de teste.
O que funciona para mim é:
eval echo \$URL_${ENVIRONMENT^^}