Saya membuat skrip yang membaca konten file, memanipulasi konten dan menambahkan ke file lain (khususnya file host virtual). Pemformatan dan spasi putih dalam file output penting tetapi ketika saya menulis konten, spasi kosong dihapus.
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
Jadi gema pertama menghasilkan sesuatu seperti
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
tetapi string yang masuk ke file adalah
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
Bagaimana cara mempertahankan spasi putih saat menambahkan ke file target? Saya telah mencari ini tetapi semua pertanyaan serupa tidak berlaku untuk skrip saya tanpa menulis ulang.
echo $TEMPLATE
akan berhasil. Itu harus runtuh beberapa spasi putih juga.echo $TEMPLATE
berfungsi karena saya mempunyai tanda kutip di sekitarnya tetapi saya lalai untuk menyalinnya ke posting saya. Saya tidak berpikir itu penting. Saya salah!