有没有办法在BASH中使用for循环遍历多个数组

时间:2013-06-05 00:20:54

标签: arrays bash

我有4个阵列:

ARRAY1=( A B C D )
ARRAY2=( E F G )
ARRAY3=( H I J K L M )
ARRAY4=( N )

我想如何获得包含这些元素的新数组:

FINAL_ARRAY=( ARRAY1 A ARRAY1 B ARRAY1 C ARRAY1 D ARRAY2 E ARRAY2 F ARRAY2 G ARRAY3 H ARRAY3 I ARRAY3 J ARRAY3 K ARRAY3 L ARRAY3 M ARRAY4 N )

这可以使用某种for循环或BASH中的任何其他方式完成吗?

感谢。

1 个答案:

答案 0 :(得分:8)

#!/bin/bash
ARRAY1=( A B C D )
ARRAY2=( E F G )
ARRAY3=( H I J K L M )
ARRAY4=( N )
ARRAYNAMES=(ARRAY1 ARRAY2 ARRAY3 ARRAY4)
for an in "${ARRAYNAMES[@]}"; do
    aref="$an[@]"
    for item in "${!aref}"; do
        NEWARRAY=("${NEWARRAY[@]}" "$an" "$item")
    done
done
echo "${NEWARRAY[@]}"

输出:

ARRAY1 A ARRAY1 B ARRAY1 C ARRAY1 D ...