Você precisa de aspas duplas para que as conchas não realizem divisão de campo :
XX="$(ls -l)"; echo "$XX"
Mas não é bom usar echo
com variável que você não conhece seu conteúdo, você deve usar printf
(read esta resposta ):
XX="$(ls -l)"; printf '%s\n' "$XX"