小编opi*_*no9的帖子

通过将其名称作为变量引用来检索 bash 数组

我需要有关 bash 扩展的帮助。
我想检索数组值,GNU bash 5.1.0。数组名称应该是一个变量。“只是”引用 bash 中的变量。

我有一个名为“armin”的数组,其名称位于变量 $gral 中(工作正常):

gral="armin"
Run Code Online (Sandbox Code Playgroud)

赋值:

declare -a ${gral}[1]="milk"
declare -a ${gral}[2]="cow"
declare  ${gral}[7]="budgie"
declare  ${gral}[9]="pla9ne"
Run Code Online (Sandbox Code Playgroud)

美好的。

数组存在:

$ echo ${armin[@]}
milk cow budgie pla9ne
Run Code Online (Sandbox Code Playgroud)

数组索引存在:

$echo ${!armin[@]}
1 2 7 9
Run Code Online (Sandbox Code Playgroud)

数组和索引都很好。

我想通过引用数组的名称作为变量来检索数组,而不是手动。有很多...
变量之前已设置和使用:

$ echo $gral
armin  ## name of our bash array
Run Code Online (Sandbox Code Playgroud)

很好——到目前为止。

只是为了显示差异而不使用变量:

echo ${armin[@]}
milk cow budgie pla9ne
Run Code Online (Sandbox Code Playgroud)

现在尝试引用变量(gral)来调用名称(armin):

$ echo ${$gral[@]}
-bash: ${$gral[@]}: wrong substitution.

$echo ${"$gral"[@]}
-bash: ${"$gral"[@]}: wrong substitution.
echo ${"gral"[@]}
-bash: ${"gral"[@]}: …
Run Code Online (Sandbox Code Playgroud)

bash array reference

3
推荐指数
1
解决办法
3630
查看次数

标签 统计

array ×1

bash ×1

reference ×1