我将diff
的输出保存到变量variable=$(diff file1 file2)
使用echo "$variable"
打印时,出现带有新行的文本:
1c1
< x
---
> y
但是使用echo $variable
时,所有内容都保持一行。
1c1 < x --- > y
我想知道造成这种差异的原因是什么。
答案 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。