首页 > 解决方案 > 为什么未引用的变量评估会丢弃换行符,而未引用的赋值会保留 bash 中的换行符?

问题描述

“如何在 bash 变量中存储和打印换行符”这个问题有很多答案。简而言之,答案通常是在计算时需要引用包含换行符的变量。

例如

foo="1
2"
echo "$foo"

输出

1
2

echo $foo

输出

1 2

在这一点上,人们可能会认为变量的行可以通过将它们分配给另一个不带引号的变量来连接成一行。

例如

bar=$foo

然而

echo "$bar"

输出

1
2

这个问题的答案可能已经被问过了。但是,类似问题的大量答案可能会挤出我感兴趣的问题的现有答案。所以,需要问:为什么不带引号的变量评估会丢弃换行符,而赋值中的不带引号的变量评估会保留换行符?

没有参考文档的答案不会真正有用,因为行为已经很清楚了。语言律师可能会提供最好的答案。

标签: bashlanguage-lawyerdocumentationspecificationsquoting

解决方案


推荐阅读