2013-01-04 25 views
-1

我试图在数组变量中使用变量,但它的抛出错误是“错误的替换”。感谢您的帮助。如何在数组变量中使用变量

实施例: ./xxx.ksh 1

NAME1[0]="Zara" 
NAME2[0]="Daisy" 
if [ $1 -eq 1 ]; 
then 
name=NAME1 
echo "First Name: ${${name}[0]}" 
else 
name=NAME2 
echo "Second Name: ${${name}[0]}" 
fi 

xxx.ksh:管线7:名:$ {$名称[0]}:坏取代

+0

嗨,大家好,我仍然没有得到正确的答案。请告诉我该怎么做? – Vinoth

回答

0

动态变量名是一个巨大的麻烦。只需使用一个更好的数组键:

NAME[1,0]=Zara 
NAME[2,0]=Daisy 
set -- 2 
echo ${NAME[$1,0]}  # => Daisy 

反正bash的方式来实现你的目标是使用indirect expansion

NAME1[0]=Zara; NAME2[0]=Daisy; set -- 1; name=NAME$1[0] 
echo ${!name}   # => Zara 
+0

我有大量的变量,所以这种方法将无法正常工作。请给我建议任何替代方法。 – Vinoth