Estoy creando un script que lee el contenido de un archivo, manipula el contenido y lo agrega a otro archivo (específicamente el archivo de hosts virtuales). El formato y el espacio en blanco en el archivo de salida es importante, pero cuando escribo el contenido, el espacio en blanco se elimina.
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
Entonces el primer eco produce algo como
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
pero la cadena que ingresa al archivo es
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
¿Cómo conservo el espacio en blanco al agregarlo al archivo de destino? He buscado esto, pero todas las preguntas similares no se aplican a mi script sin reescribirlo.
echo $TEMPLATE
funcione. También debería colapsar múltiples espacios en blanco.echo $TEMPLATE
estaba funcionando porque tenía citas al respecto, pero olvidé copiarlo en mi publicación. No pensé que eso fuera importante. ¡Estaba equivocado!