Narazil jsem na stejný problém, pomůže nabídka
[email protected]:~/apps$ apps="abc
> def"
[email protected]:~/apps$ echo $apps
abc def
[email protected]:~/apps$ echo "$apps"
abc
def
Citace vaše proměnné. Zde je důvod:
$ f="fafafda
> adffd
> adfadf
> adfafd
> afd"
$ echo $f
fafafda adffd adfadf adfafd afd
$ echo "$f"
fafafda
adffd
adfadf
adfafd
afd
Bez uvozovek shell nahradí $TEMP
se znaky, které obsahuje (jeden z nich je nový řádek). Potom před vyvoláním echo
shell rozdělí tento řetězec na více argumentů pomocí Internal Field Separator
(IFS) a předá výsledný seznam argumentů echo
. Ve výchozím nastavení IFS
je nastaveno na mezery (mezery, tabulátory a nové řádky), takže shell seká vašich $TEMP
řetězec do argumentů a nikdy neuvidí nový řádek, protože jej shell považuje za oddělovač, stejně jako mezeru.