我有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中的任何其他方式完成吗?
感谢。
答案 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 ...