Bash Templating: Wie man Konfigurationsdateien aus Vorlagen mit Bash erstellt?

Ich Schreibe ein Skript zum automatisieren der Erstellung von Konfigurationsdateien für Apache und PHP auf meinem eigenen webserver. Ich will nicht von irgendwelchen GUIs, wie CPanel oder ISPConfig.

Ich habe einige Vorlagen von PHP und Apache-Konfigurationsdateien. Bash-Skript Lesen muss Vorlagen, machen Variablenzuweisung und Ausgabe analysiert Vorlagen in einem Ordner. Was ist der beste Weg, das zu tun? Ich kann mir denken, von mehreren Möglichkeiten. Welche ist die beste oder vielleicht gibt es einige bessere Möglichkeiten, das zu tun? Ich möchte zu tun, dass in reinen Bash (es ist einfach, in PHP zum Beispiel)

1) So ersetzen Sie $ {} - Platzhalter in eine text-Datei?

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, wie kann ich die Umleitung der Ausgabe auf externen Datei hier? Brauche ich, um zu entkommen etwas, wenn Sie Variablen enthalten, sagen, Zitate?

2) Mit Hilfe von cat & sed für die Ersetzung der einzelnen Variablen durch Ihren Wert:

Gegeben template.txt:

The number is ${i}
The word is ${word}

Befehl:

cat template.txt | sed -e "s/\${i}/1/" | sed -e "s/\${word}/dog/"

Schlecht scheint mir wegen der zu entkommen müssen viele verschiedene Symbole und mit vielen Variablen die Zeile tooooo lange.

Können Sie sich einige andere elegante und sichere Lösung?

InformationsquelleAutor der Frage Vladislav Rastrusny | 2010-05-26

Schreibe einen Kommentar