这个问题在这里已有答案:
我将diff
的输出保存到变量variable=$(diff file1 file2)
使用echo "$variable"
打印时,会出现带有新行的文本:
1c1
< x
---
> y
但是当使用echo $variable
时,一切都停留在一行。
1c1 < x --- > y
我想知道这种差异的原因是什么。
您查询的可能解决方案是: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。