env에서 동적 변수 읽기

env에서 동적 변수 읽기

환경 변수가 있다고 가정해 보겠습니다.

  echo lmx_setting_foo="bar";

위의 환경 변수는 다음과 같이 생성됩니다.

$ lmx set foo bar

물론:

export "lmx_setting_$2"="$3"

누군가가 "foo"를 검색하고 싶다고 가정하면 다음과 같이 합니다.

$ lmx get foo

하지만 이렇게 하면:

echo "$lmx_setting_$2"

작동하지 않는 것 같습니다

답변1

이 문제를 해결하는 방법에는 여러 가지가 있지만 가장 이식성이 뛰어난 방법은 아마도

eval "echo \$lmx_setting_$2"

그러나 평가를 피하는 bash의 구체적인 방법은 다음과 같습니다.

temp="lmx_setting_$2"
echo ${!temp}

이전에 경험하지 않았다면 bash 매뉴얼 페이지를 열고 아래로 스크롤하여매개변수 확장모든 옵션을 검토하세요. 환경 변수에 대해 구체적으로 질문했지만 해당 변수를 내보낼 필요가 없고 충분한 새로운 bash 버전(4.0+)이 있는 경우 연관 배열을 사용하여 전체 혼란을 피할 수 있습니다... 하지만 스크립트는 실제로 휴대 불가능하지 않습니다.

관련 정보