如何使用变量偏好作为数组名称

时间:2016-12-11 15:58:57

标签: bash

假设我有2个数组:

A=(a1 a2 a3)
B=(b1 b2 b3)

我想用循环显示A和B的内容,如下所示:

for i in A B
do
    echo ${${i}[@]}
done

并获得这样的结果

a1 a2 a3
b1 b2 b3

我怎么能意识到这一点?

1 个答案:

答案 0 :(得分:2)

使用间接参数扩展。

for i in A B; do
  t="$i[@]"   # A[@] or B[@]
  echo "${!t}"
done

诀窍是将数组名称加上索引([@])视为变量“name”。