ksh中的变量间接

Viv*_*vek 3 unix ksh

在如下的ksh-snippet中

iname=FA
USER_FA=xyz 
USER_CS=test
TDUSER=USER_$iname
${!TDUSER}
Run Code Online (Sandbox Code Playgroud)

${!TDUSER}没有按预期工作.为什么?

Adr*_*rth 6

语法${!var}有效,bash但不是ksh93.可变间接的ksh用途namerefs:

$ iname=FA
$ USER_FA=xyz
$ nameref TDUSER=USER_$iname
$ echo "${TDUSER}"
xyz
Run Code Online (Sandbox Code Playgroud)

ksh93,!修饰符用于从数组中获取索引列表:${!name[@]}参数替换期间.