-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 に答える