在ksh
- 代码段中,如下所示
iname=FA
USER_FA=xyz
USER_CS=test
TDUSER=USER_$iname
${!TDUSER}
${!TDUSER}
无效。为什么呢?
答案 0 :(得分:5)
语法${!var}
适用于bash
但不适用ksh93
。 ksh
中的变量间接使用namerefs
:
$ iname=FA
$ USER_FA=xyz
$ nameref TDUSER=USER_$iname
$ echo "${TDUSER}"
xyz
在ksh93
中,!
修饰符用于从参数替换期间获取数组中的索引列表:${!name[@]}
。