Search code examples
linuxbashshellash

All newlines are removed when saving cat output into a variable


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?


Solution

  • 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"