Estou criando um script que lê o conteúdo de um arquivo, manipula o conteúdo e anexa a outro arquivo (especificamente o arquivo de hosts virtuais). A formatação e o espaço em branco no arquivo de saída são importantes, mas quando escrevo o conteúdo, o espaço em branco é removido.
VHOST_PATH="/etc/apache2/extra/httpd-vhosts.conf"
TEMPLATE_PATH="./template.conf"
TEMPLATE=$(<TEMPLATE_PATH)
# manipulating $TEMPLATE
echo $TEMPLATE #outputs correct whitespace
echo $TEMPLATE >> $VHOST_PATH #does not output correct whitespace
Então o primeiro eco produz algo como
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
mas a string que entra no arquivo é
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
Como preservo o espaço em branco ao anexar ao arquivo de destino? Eu procurei por isso, mas todas as perguntas semelhantes não se aplicam ao meu script sem reescrevê-lo.
echo $TEMPLATE
funcione. Ele também deve recolher vários espaços em branco.echo $TEMPLATE
estava trabalhando porque eu tinha aspas, mas não consegui copiá-lo para o meu post. Eu não achava isso importante. Eu estava errado!