All newlines are removed when saving cat output into a variable

MOHAMED picture MOHAMED · Aug 2, 2013 · Viewed 13.1k times · Source

I have the following file

linux$ cat test.txt
toto
titi
tete
tata

Saving the cat output into a variable will discard the newlines

linux$ msgs=`cat test.txt`
linux$ echo $msgs
toto titi tete tata

How to keep the output containing the newlines in the variables?

Answer

jlliagre picture jlliagre · Aug 2, 2013

The shell is splitting the msgs variable so echo get multiple parameters. You need to quote your variable to prevent this to happen:

echo "$msgs"