( Zahy | 2013. 05. 31., p – 18:03 )

Igyekeztem minimalista szinten változtatni a te kódodon, de nekem látszólag megy, azaz a teljes ls kimenet minden szava egy tömbelem.

#!/bin/bash

a=(`ls -l |
while read; do
echo "$REPLY"
done`)
printf '!!! %s !!!\n' "${a[@]}"
exit 0

Ha neked az kell, hogy a szóközöknél ne essen szét, hanem csak a soremeléseknél, akkor sokkal egyszerűbb megoldás az értékadás előtt átállítani az IFS változót:

#!/bin/bash

IFS='
'
a=( ...

mondjuk így.