使用echo设置变量时的换行符

时间:2014-09-17 21:40:51

标签: bash shell echo

我尝试使用\n使用echo输出两个单独的行并将其存储在变量中:

VAR=$( echo -e "foo\nbar" )

但我得到的输出是:

$ echo $VAR
foo bar

它本身很好用:

$ echo -e "foo\nbar"
foo
bar

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要将$VAR括在双引号中:

echo "$VAR"

否则,word splitting发生。这意味着" foo"和" bar"被视为echo的两个独立参数,它们之间的换行符丢失。

您可以使用set -x启用调试模式,看看会发生什么:

$ set -x
$ echo $VAR
+ echo foo bar
foo bar
$ echo "$VAR"
+ echo 'foo
bar'
foo
bar
相关问题