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

MOH*_*MED 14 linux bash shell ash

我有以下文件

linux$ cat test.txt
toto
titi
tete
tata
Run Code Online (Sandbox Code Playgroud)

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

linux$ msgs=`cat test.txt`
linux$ echo $msgs
toto titi tete tata
Run Code Online (Sandbox Code Playgroud)

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

jll*_*gre 38

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

echo "$msgs"
Run Code Online (Sandbox Code Playgroud)

  • 令人困惑但又简单。简而言之,Bash (2认同)