如何在Bash中引用的string中保留换行符?

我正在创build一个脚本来自动创buildApache虚拟主机。 我的部分脚本是这样的:

MYSTRING="<VirtualHost *:80> ServerName $NEWVHOST DocumentRoot /var/www/hosts/$NEWVHOST ... " echo $MYSTRING 

但是,脚本中的换行符被忽略。 如果我回声的string,是作为一条线吐出。

我怎样才能确保换行符被打印?

添加引号使其工作:

 echo "$MYSTRING" 

这样看:

 MYSTRING="line-1 line-2 line3" echo $MYSTRING 

这将被执行为:

 echo line-1 \ line-2 \ line-3 

即使用三个参数进行回显,在每个参数之间打印一个空格。

如果您在$MYSTRING周围添加引号,则生成的命令将是:

 echo "line-1 line-2 line-3" 

即用单个string参数进行echo ,该参数有三行文本和两个换行符。