我尝试使用\n
使用echo输出两个单独的行并将其存储在变量中:
VAR=$( echo -e "foo\nbar" )
但我得到的输出是:
$ echo $VAR
foo bar
它本身很好用:
$ echo -e "foo\nbar"
foo
bar
我做错了什么?
答案 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