Eu prefiro printf
:
printf "%s\n" "${array[@]}" | ...
Você também pode usar IFS
para unir elementos de matriz usando um caractere:
(IFS=$'\n'; echo "${array[*]}") | ...
A diferença entre "${array[@]}"
e "${array[*]}"
é que o primeiro se expande para os elementos do array como palavras separadas, o segundo se expande para uma única palavra formada unindo os elementos do array usando o primeiro caractere de IFS
.