2013-01-04 42 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