在Bash中合并两个数组

我有以下情况,两个数组,让我们称它们为A(0 1)和B(1 2),我需要将它们组合成一个新的数组C(0:1 0:2 1:1 1:2),我想出的最新一点是这个循环:
for ((z = 0; z <= ${#A[@]}; z++)); do
     for ((y = 0; y <= ${#B[@]}; y++)); do
       C[$y + $z]="${A[$z]}:"
       C[$y + $z + 1]="${B[$y]}"
     done
   done

但它不能很好地工作,因为输出我得到这个:

0: : : :

在这种情况下,输出应为0:1 0:2,因为A =(0)且B =(1 2)

由于Bash支持稀疏数组,因此迭代数组比使用基于大小的索引更好.
a=(0 1); b=(2 3)
i=0
for z in ${a[@]}
do
    for y in ${b[@]}
    do
        c[i++]="$z:$y"
    done
done
declare -p c   # dump the array

输出

declare -a c='([0]="0:2" [1]="0:3" [2]="1:2" [3]="1:3")'

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...