如何在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
,该参数有三行文本和两个换行符。