![KornShell 스크립트의 동적 변수](https://linux55.com/image/69850/KornShell%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%EB%8F%99%EC%A0%81%20%EB%B3%80%EC%88%98.png)
이 KornShell 스크립트(ksh):
envir=Dev
eval "${envir}foo=bar"
echo "$Devfoo"
산출:
bar
envir
하지만 변수에 어떤 값이 할당되었는지는 알 수 없습니다 . 그래서 위와 같은 출력으로 다음과 같은 작업을 수행하고 싶습니다.
envir=Dev
eval "${envir}foo=bar"
echo "${${envir}foo}"
산출:
${${envir}foo}: bad substitution
답변1
ksh93의 경우 (적어도) 몇 가지 옵션이 있습니다.
연관 배열
envir=Dev foo["$envir"]=bar echo "${foo["$envir"]}"
이름 참조
nameref var=${envir}foo var=bar echo "$var"
ksh88을 사용하면 eval에 문제가 발생할 수 있습니다.
envir=Dev
name="${envir}foo"
eval "$name=bar"
eval "echo \$$name"