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

4

1 回答 1

0

动态变量名非常麻烦。只需使用更好的数组键:

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

无论如何,实现目标的 bash 方法是使用间接扩展

NAME1[0]=Zara; NAME2[0]=Daisy; set -- 1; name=NAME$1[0]
echo ${!name}          # => Zara
于 2013-01-04T11:41:37.650 回答