Я создаю сценарий, который читает содержимое файла, манипулирует содержимым и добавляет его в другой файл (в частности, файл виртуальных хостов). Форматирование и пробелы в выходном файле важны, но когда я пишу содержимое, пробелы удаляются.
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
Итак, первое эхо производит что-то вроде
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
но строка, которая попадает в файл
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
Как сохранить пробелы при добавлении в целевой файл? Я искал это, но все подобные вопросы не относятся к моему сценарию, не переписав его.
echo $TEMPLATE
это сработает. Он должен также свернуть несколько пробелов.echo $TEMPLATE
работал, потому что у меня были кавычки вокруг этого, но я забыл скопировать его в свой пост. Я не думал, что это важно. Я был неправ!