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?
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
tout simplement sans l’option -e , les guillemets suffisent … et tu me fais redécouvrir la solution, merci.
Même sans -e
:
$ res=$(echo a ; echo b)
$ echo "$res"
a
b
[~]$ 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