将cat输出保存到变量时,将删除所有新行

时间:2013-08-02 13:40:01

标签: linux bash shell ash

我有以下文件

linux$ cat test.txt
toto
titi
tete
tata

将cat输出保存到变量中将丢弃换行符

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

如何在变量中保存包含换行符的输出?

3 个答案:

答案 0 :(得分:32)

shell正在拆分msgs变量,以便echo获取多个参数。 您需要引用变量以防止这种情况发生:

echo "$msgs"

答案 1 :(得分:0)

我有这个:

echo $(cat myfile.sh) >> destination.sh

导致问题,所以我将其更改为:

cat myfile.sh >> destination.sh

这很有效,lulz

答案 2 :(得分:-6)

您可以使用重定向“|”

echo | cat test.txt