기존 변수의 값을 변수 이름의 일부로 사용하여 새 변수를 만들려고 합니다.
filemsg"$word1"=" "
나도 시도했다
filemsg$word1=" "
filemsg${word1}=" "
모든 시도에서 이 줄이 실행되면 다음과 같은 결과를 얻습니다.
cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]
답변1
답변2
export
eval
쉘 토큰 다음에 쉘 코드가 실행될 위험이 없기 때문에 이렇게 하는 것보다 훨씬 안전합니다 . 하지만 변수를 처리하므로 export
원하는 대로 사용할 수 있습니다.
export "filemsg$word1= "
답변3
그렇지 않다POSIX, 그러나 항상 bash
있습니다 printf -v
. stdout으로 인쇄하지 않고 다음과 같은 변수 이름으로 인쇄합니다 -v
.
x=foo; printf -v $x bar; echo $foo
산출:
bar
답변4
이 시도:
filemsgCICS=foo
word1=CICS
ref_filemsg=filemsg$word1
echo ${!ref_filemsg} => foo