환경 변수가 있다고 가정해 보겠습니다.
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+)이 있는 경우 연관 배열을 사용하여 전체 혼란을 피할 수 있습니다... 하지만 스크립트는 실제로 휴대 불가능하지 않습니다.