代码之家  ›  专栏  ›  技术社区  ›  prenc

使用引号和不使用[重复]回声的区别

  •  0
  • prenc  · 技术社区  · 7 年前

    我保存了 diff 到变量 variable=$(diff file1 file2)

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

    1c1
    < x
    ---
    > y
    

    但是当使用 echo $variable ,所有东西都在一条线上。

    1c1 < x --- > y
    

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Menelaos    7 年前

    查询的可能解决方案是: 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 .

    推荐文章