Je suis d'écrire un script pour automatiser la création de fichiers de configuration pour Apache et PHP pour mon propre serveur. Je ne veux pas utiliser toutes les Interfaces graphiques comme CPanel ou ISPConfig.
J'ai quelques modèles de Apache et PHP, les fichiers de configuration. Script Bash besoin de lire des modèles, de faire la substitution des variables de sortie et analysé des modèles dans un dossier. Quelle est la meilleure façon de le faire? Je peux penser à plusieurs égards. Qui est le meilleur ou peut-être il y a quelques meilleures façons de le faire? Je veux le faire dans le plus pur Bash (c'est facile en PHP par exemple)
1) Comment remplacer ${} emplacements dans un fichier texte?
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, comment puis-je rediriger la sortie dans un fichier externe? Ai-je besoin pour échapper à quelque chose si les variables contiennent, disons, d'un devis?
2) à l'Aide de cat & sed pour remplacer chaque variable par sa valeur:
Compte tenu de template.txt:
The number is ${i}
The word is ${word}
Commande:
cat template.txt | sed -e "s/\${i}/1/" | sed -e "s/\${word}/dog/"
Semble mauvais pour moi à cause de la nécessité d'échapper à de nombreux symboles différents et avec de nombreuses variables, la ligne sera tooooo de long.
Pouvez-vous penser à d'autres élégante et sûre solution?