Je crée un script qui lit le contenu d'un fichier, manipule le contenu et l'ajoute à un autre fichier (en particulier le fichier d'hôtes virtuels). Le formatage et les espaces dans le fichier de sortie sont importants mais lorsque j'écris le contenu, les espaces sont supprimés.
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
Donc le premier écho produit quelque chose comme
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
mais la chaîne qui pénètre dans le fichier est
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
Comment conserver l'espace blanc lors de l'ajout dans le fichier cible? J'ai cherché cela, mais toutes les questions similaires ne s'appliquent pas à mon script sans le réécrire.
echo $TEMPLATE
cela fonctionne. Il devrait également réduire plusieurs espaces blancs.