Bir dosyanın içeriğini okuyan, içeriği işleyen ve başka bir dosyaya (özellikle sanal ana bilgisayarlar dosyası) ekleyen bir komut dosyası oluşturuyorum. Çıktı dosyasındaki biçimlendirme ve boşluk önemlidir, ancak içeriği yazdığımda boşluk çıkarılır.
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
İlk yankı şöyle bir şey üretir:
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
ancak dosyaya giren dize
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
Hedef dosyaya eklerken boşlukları nasıl koruyabilirim? Bunu aradım ama tüm benzer sorular senaryoyu yeniden yazmadan geçerli değil.
echo $TEMPLATEişe yarayacağını şaşırtıcı buluyorum . Birden fazla beyaz alanı da daraltmalıdır.