मैं अपने वेबसर्वर के लिए Apache और PHP के लिए विन्यास फाइल बनाने के लिए एक स्क्रिप्ट लिख रहा हूँ। मैं किसी भी GUI जैसे CPanel या ISPConfig का उपयोग नहीं करना चाहता।
मेरे पास अपाचे और पीएचपी कॉन्फ़िगरेशन फ़ाइलों के कुछ टेम्पलेट हैं। बैश स्क्रिप्ट को टेम्प्लेट पढ़ने की जरूरत है, कुछ फ़ोल्डर में वैरिएबल प्रतिस्थापन और आउटपुट पार्स किए गए टेम्प्लेट बनाएं। उसे करने का सबसे अच्छा तरीका कौन सा है? मैं कई तरीकों के बारे में सोच सकता हूं। कौन सा सबसे अच्छा है या ऐसा करने के लिए कुछ बेहतर तरीके हो सकते हैं? मैं इसे शुद्ध बैश में करना चाहता हूं (उदाहरण के लिए PHP में यह आसान है)
1) टेक्स्ट फ़ाइल में $ {} प्लेसहोल्डर्स को कैसे बदलें?
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, मैं यहाँ बाहरी फ़ाइल पर आउटपुट को कैसे पुनः निर्देशित करूँ? यदि चर, बोल, उद्धरण सहित मुझे कुछ बचने की आवश्यकता है?
2) प्रत्येक चर को उसके मान से बदलने के लिए बिल्ली और पाल का उपयोग करना:
टेम्पलेट दिया गया।
The number is ${i}
The word is ${word}
कमान:
cat template.txt | sed -e "s/\${i}/1/" | sed -e "s/\${word}/dog/"
कई अलग-अलग प्रतीकों से बचने की आवश्यकता के कारण मेरे लिए बुरा लगता है और कई चर के साथ लाइन बहुत लंबी हो जाएगी।
क्या आप किसी और सुरुचिपूर्ण और सुरक्षित समाधान के बारे में सोच सकते हैं?