Saya sedang menulis skrip untuk secara otomatis membuat file konfigurasi untuk Apache dan PHP untuk server web saya sendiri. Saya tidak ingin menggunakan GUI seperti CPanel atau ISPConfig.
Saya memiliki beberapa template file konfigurasi Apache dan PHP. Script Bash perlu membaca templat, membuat subtitle variabel dan templat keluaran diuraikan ke dalam beberapa folder. Apa cara terbaik untuk melakukannya? Saya dapat memikirkan beberapa cara. Mana yang terbaik atau mungkin ada beberapa cara yang lebih baik untuk melakukan itu? Saya ingin melakukannya dalam Bash murni (mudah dalam PHP misalnya)
1) Bagaimana cara mengganti $ {} placeholder dalam file teks?
template.txt:
the number is ${i}
the word is ${word}
script.sh:
#!/bin/sh
#set variables
i=1
word="dog"
#read in template one line at the time, and replace variables
#(more natural (and efficient) way, thanks to Jonathan Leffler)
while read line
do
eval echo "$line"
done < "./template.txt"
BTW, bagaimana cara mengarahkan output ke file eksternal di sini? Apakah saya perlu melarikan diri sesuatu jika variabel berisi, katakanlah, tanda kutip?
2) Menggunakan cat & sed untuk mengganti setiap variabel dengan nilainya:
Template.txt yang diberikan:
The number is ${i}
The word is ${word}
Perintah:
cat template.txt | sed -e "s/\${i}/1/" | sed -e "s/\${word}/dog/"
Tampak buruk bagi saya karena kebutuhan untuk melarikan diri banyak simbol yang berbeda dan dengan banyak variabel garisnya akan terlalu panjang.
Bisakah Anda memikirkan beberapa solusi elegan dan aman lainnya?