\n dans le résultat d'une cde sus bash?

Je suis embêté par ce petit pb ce matiin

echo a; echo b

a
b

mais dans un script bash
res=$(echo a; echo b)
echo $res

a b

Avez-vous une explication ? Une solution pour pour retrouver les saut de lignes dans ce cas?

J’ai pas essayé, mais essaye echo -e "$res"

Utilise l’option -e de echo.

Encadre $res par des guillemets

1 J'aime

tout simplement :slight_smile: sans l’option -e , les guillemets suffisent … et tu me fais redécouvrir la solution, merci.

1 J'aime

Même sans -e:

$ res=$(echo a ; echo b)
$ echo "$res"
a
b
1 J'aime
[~]$ a="aa"
[~]$ b="bb c"
[~]$ res=$(echo $a$b)
[~]$ echo $res
aabb c
[~]$ echo $(echo -n "aa" ; echo -n "bb c")
aabb c
[~]$ 

et enfin

[~]$ a="Glop
> Glop"
[~]$ b="Pifou
> "
[~]$ LF="
> "
[~]$ res=$(echo $a$LF$b)
[~]$ echo $res
Glop Glop Pifou
[~]$ echo "$res"
Glop Glop Pifou
[~]$ res=$a$LF$b
[~]$ echo $res
Glop Glop Pifou
[~]$ echo "$res"
Glop
Glop
Pifou