Ich erstelle ein Skript, das den Inhalt einer Datei liest, den Inhalt bearbeitet und an eine andere Datei anhängt (insbesondere die Datei für virtuelle Hosts). Die Formatierung und das Leerzeichen in der Ausgabedatei sind wichtig, aber wenn ich den Inhalt schreibe, wird das Leerzeichen entfernt.
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
Das erste Echo erzeugt also so etwas wie
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
aber die Zeichenfolge, die in die Datei gelangt, ist
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
Wie behalte ich das Leerzeichen beim Anhängen an die Zieldatei bei? Ich habe danach gesucht, aber all die ähnlichen Fragen gelten nicht für mein Skript, ohne es neu zu schreiben.
echo $TEMPLATE
das funktionieren würde. Es sollte auch mehrere Leerzeichen kollabieren.echo $TEMPLATE
weil ich Zitate hatte, aber ich habe es versäumt, es in meinen Beitrag zu kopieren. Ich fand das nicht wichtig. Ich lag falsch!