我有名为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
Run Code Online (Sandbox Code Playgroud)
我不知道如何${${dir}EMI}
解决替换问题。
ksh 93 有一个nameref
命令可以让你为变量创建“别名”:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
Run Code Online (Sandbox Code Playgroud)
var1EMI is a
var2EMI is b
Run Code Online (Sandbox Code Playgroud)
对于 ksh88,您可能会被迫使用eval
; 代替:
nameref var=${v}EMI
Run Code Online (Sandbox Code Playgroud)
和:
eval var=\$${v}EMI
Run Code Online (Sandbox Code Playgroud)