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"