Comment faire pour convertir la sortie d'une commande à un tableau ligne par ligne en bash?

Je suis en train de convertir la sortie d'une commande comme echo -e "a b\nc\nd e" à un tableau.

X=( $(echo -e "a b\nc\nd e") )

Divise l'entrée pour chaque nouvelle ligne et les espaces de caractère:

$ echo ${#X[@]}
> 5

for i in ${X[@]} ; do echo $i ; done
a
b
c
d
e

Le résultat devrait être:

for i in ${X[@]} ; do echo $i ; done
a b
c
d e
double possible de Comment puis-je créer un tableau dans un bash à partir d'une variable de commande?
Quelqu'un pourrait être en mesure de trouver une meilleure double; c'est juste la plus récente. Cette question a probablement été posée des dizaines de fois.

OriginalL'auteur Thomas Jung | 2012-01-07