KornShell 스크립트의 동적 변수

KornShell 스크립트의 동적 변수

이 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의 경우 (적어도) 몇 가지 옵션이 있습니다.

  1. 연관 배열

    envir=Dev
    foo["$envir"]=bar
    echo "${foo["$envir"]}"
    
  2. 이름 참조

    nameref var=${envir}foo
    var=bar
    echo "$var"
    

ksh88을 사용하면 eval에 문제가 발생할 수 있습니다.

envir=Dev
name="${envir}foo"
eval "$name=bar"
eval "echo \$$name"

관련 정보