변수 확장의 변수

변수 확장의 변수

이름이 다른 변수를 동적으로 평가해야 하는 변수를 평가하고 싶습니다. 즉, var는 , 또는 일 ENVIRONMENT수 있으므로 3개의 URL이 있습니다.prodstgtest

URL_PROD=https://myproduction.com
URL_STG=https://mystaging.com
URL_TEST=https://mytest.com

그래서 값을 검색하고 싶습니다 URL_STG.

다음은 작동하지 않습니다

echo $"URL_${ENVIRONMENT^^}"

답변1

Nearest bash또는 를 사용하여 ksh93URL을 보관할 연관 배열을 만듭니다.

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^^}

관련 정보