我试图在数组变量中使用变量,但它的抛出错误是“错误的替换”。谢谢你的帮助。
示例: ./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]}:错误替换
答案 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