我有名为var1EMI
、var2EMI
、var1DDE
、var2DDE
等的变量,我需要能够像这样迭代它们;
for dir in var1 var2
do
echo "EMI value for " $dir " is " ${${dir}EMI}
echo "DDE value for " $dir " is " ${${dir}DDE}
done
我不知道如何解决${${dir}EMI}
替换问题。
答案1
ksh 93 有一个nameref
命令可以让您为变量创建“别名”:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b
对于 ksh88,您可能被迫使用eval
;代替:
nameref var=${v}EMI
和:
eval var=\$${v}EMI