Variável na expansão de variáveis

0

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^^}"
    
por pkaramol 23.02.2018 / 10:25

3 respostas

1

Além da resposta relacionada às arrays associativas proposta por @Kusalananda, também cheguei a essa conclusão:

ENDPOINT=URL_${ENVIRONMENT^^}
MY_URL="${!ENDPOINT}"
    
por 23.02.2018 / 10:42
1

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.

    
por 23.02.2018 / 10:40
0

O que funciona para mim é:

eval echo \$URL_${ENVIRONMENT^^}
    
por 23.02.2018 / 10:44