Merge 2 arrays
USAGE: merge arrayname1 arrayame2 joinarray
merge() { local a1=${1:?Array name required} a2=${2:?Array name required} local j=${3:?Array name required} b1 b2 new eval "b1=( \"\${$a1[@]}\" )" eval "b2=( \"\${$a2[@]}\" )"
Set num to the number of elements in the larger array
num=$(( ${#b1[@]} > ${#b2[@]} ? ${#b1[@]} : ${#b2[@]} )) n=-1 while [ $(( n += 1 )) -lt $num ] do # new+=( "${b1[n]}" "${b2[n]}" ) new+=( ${b1[n]+"${b1[n]}"} ${b2[n]+"${b2[n]}"} ) done
Copy new array into target array
eval "$j=( \"\${new[@]}\" )" }