使用引号和不使用引号之间的区别

时间:2018-09-10 13:28:35

标签: bash shell diff

我将diff的输出保存到变量variable=$(diff file1 file2)

使用echo "$variable"打印时,出现带有新行的文本:

1c1
< x
---
> y

但是使用echo $variable时,所有内容都保持一行。

1c1 < x --- > y

我想知道造成这种差异的原因是什么。

1 个答案:

答案 0 :(得分:0)

您的查询可能的解决方法是:https://unix.stackexchange.com/a/124638/41427

比较

$ echo $(printf 'foo\nbar\nquux\n*')
foo bar quux ssh-13yzvBMwVYgn ssh-3JIxkphQ07Ei ssh-6YC5dbnk1wOc 

with

$ echo "$(printf 'foo\nbar\nquux\n*')"
foo
bar
quux
*

再次引用:

  

不带引号的字符串受word splitting的约束,并且   globbing。另请参见BashPitfalls #14