我保存了 diff 到变量 variable=$(diff file1 file2)
diff
variable=$(diff file1 file2)
打印时使用 echo "$variable" ,出现带有新行的文本:
echo "$variable"
1c1 < x --- > y
但是当使用 echo $variable ,所有东西都在一条线上。
echo $variable
我想知道造成这种差异的原因是什么。
查询的可能解决方案是: 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 .