Forum Linux.debian/ubuntu Etrange comportement de "echo"

Posté par . Licence CC by-sa
Tags : aucun
1
27
mar.
2015

Bonjour à la communauté,

Je rencontre un petit soucis qui me gêne et que je n'arrive pas à expliquer.

Plutôt qu'un long discours, je vous laisse regarder.

J'ai une commande, qui quand je l'exécute directement dans bash me donne :

echo "status" | nc -q 1 127.0.0.1 4730
createVPNUser 0 0 1
stop_createVPNUser_1 0 0 1
.

On constate donc qu'il y a 3 lignes, c'est confirmé si j'affiche en hexa :

echo "status" | nc -q 1 127.0.0.1 4730 | hexdump -C
00000000 63 72 65 61 74 65 56 50 4e 55 73 65 72 09 30 09 |createVPNUser.0.|
00000010 30 09 31 0a 73 74 6f 70 5f 63 72 65 61 74 65 56 |0.1.stop_createV|
00000020 50 4e 55 73 65 72 5f 31 09 30 09 30 09 31 0a 2e |PNUser_1.0.0.1..|
00000030 0a |.|
00000031

Maintenant, si je veux mettre ce retour de commande dans une variable, comme ceci :

test=$(echo "status" | nc -q 1 127.0.0.1 4730)

Et que j'affiche $test avec echo, les tabulations et retours de lignes sont remplacés par de simples espaces !

echo $test | hexdump -C
00000000 63 72 65 61 74 65 56 50 4e 55 73 65 72 20 30 20 |createVPNUser 0 |
00000010 30 20 31 20 73 74 6f 70 5f 63 72 65 61 74 65 56 |0 1 stop_createV|
00000020 50 4e 55 73 65 72 5f 31 20 30 20 30 20 31 20 2e |PNUser_1 0 0 1 .|
00000030 0a |.|
00000031

Comment cela se fait-il ? Je n'ai jamais rencontré ce problème avec d'autres commandes…

Quelqu'un a une idée ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.