文本在变量中被缩短

text is shortened in variable

我创建了以下名为 birthday 的文件,其中包含以下字符串:

Happy Birthday
Happy Birthday
Happy Birthday

当我使用命令 cat birthday 时,shell 将输出行间距为

的文本字符串
Happy Birthday
Happy Birthday
Happy Birthday

当我尝试像这样声明一个变量 - 并将其回显时,所有内容都被截断在一个字符串上。如何保持间距并将其传递给变量:

birthday=$(cat birthday)  && echo $birthday

输出:

happy birthday happy birthday happy birthday

没有引号,shell 扩展变量并执行分词。因此,它将 6 个参数发送到 echo,打印它们全部由空格分隔。

使用双引号防止分词。

echo "$birthday"

顺便说一句,“截断”通常指的是通过删除末尾的字节来缩短数据,而不是删除数据中的随机位置。