将cat输出保存到变量中时会删除所有换行符。

32

我有以下文件

linux$ cat test.txt
toto
titi
tete
tata
将猫的输出保存到变量中会丢弃换行符。
linux$ msgs=`cat test.txt`
linux$ echo $msgs
toto titi tete tata

如何使变量中的输出包含换行符?

3个回答

57

Shell会对msgs变量进行拆分,以便echo指令可以获取多个参数。为防止这种情况发生,您需要对变量进行引用:

echo "$msgs"

2
混乱但简单。Bash 简介。 - Jerry Green

0

我有这个:

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

这是引起问题的原因,所以我把它改成了:

cat myfile.sh >> destination.sh

那个运行了,哈哈


-6

你可以使用重定向符号“|”

echo | cat test.txt

2
不回答问题也没有意义。当cat作为参数传递文件名时,它会忽略标准输入。 - jlliagre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接