Pase BASH array a diff como contenido de file

Tengo dos arreglos bash , por ejemplo:

 arr1=( 1 2 3 ) arr2=( 1 2 A ) 

y quiero compararlos usando diff . ¿Cómo podría pasar las matrices como si fueran el contenido de un file?

Probé algunas variaciones, pero todas fallaron:

 diff -y <$( echo ${arr1[@]} | tr ' ' '\n' ) <$( echo ${arr2[@]} | tr ' ' '\n' ) diff -y <${arr1[@]} <${arr2[@]} diff -y $(<${arr2[@]}) $(<${arr1[@]}) diff -y <<<"$( echo ${arr1[@]} | tr ' ' '\n' )" \ <<<"$( echo ${arr2[@]} | tr ' ' '\n' )" 

La salida deseada sería la esperada de diff -y , que obtengo si guardo las matrices en los files a y b:

 diff ab 1 1 2 2 3 | A 

(less espacios para legibilidad)

Me gustaría evitar escribir files intermedios por razones de velocidad, aunque conozco los pseudo files tmpfs como una solución basada en RAM.

Usando printf y sustitución de process

 diff -y <(printf '%s\n' "${arr1[@]}") <(printf '%s\n' "${arr2[@]}") 1 1 2 2 3 | A