如何在数组变量中使用变量

时间:2013-01-04 06:14:41

标签: arrays shell variables unix

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

示例: ./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行:名字:$ {$ name [0]}:错误替换

1 个答案:

答案 0 :(得分: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