Tôi đang tạo một tập lệnh đọc nội dung của tệp, thao tác nội dung và nối thêm vào tệp khác (cụ thể là tệp máy chủ ảo). Định dạng và khoảng trắng trong tệp đầu ra rất quan trọng nhưng khi tôi viết nội dung, khoảng trắng sẽ bị loại bỏ.
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
Vì vậy, tiếng vang đầu tiên tạo ra một cái gì đó như
<VirtualHost *:80>
ServerAdmin webmaster@domain
DocumentRoot "root/web"
ServerName domain
ErrorLog "root/logs/error_log"
</VirtualHost>
nhưng chuỗi được vào tập tin là
<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>
Làm cách nào để giữ nguyên khoảng trắng trong khi nối vào tệp đích? Tôi đã tìm kiếm điều này nhưng tất cả các câu hỏi tương tự không áp dụng cho kịch bản của tôi mà không viết lại nó.
echo $TEMPLATEsẽ hoạt động. Nó sẽ sụp đổ nhiều khoảng trắng là tốt.