Einzelnen Beitrag anzeigen
Alt 21.11.2008, 13:24   #5
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Prinzipiell wuerde ich dir raten,. fuer sowas `sed` als eine Art primitiver Templating Engine zu verwenden. Du kopierst dir dein Config-File an irgendeinen Ort im Dateisystem, ersetzt dort drinnen den Text, den du im EIGENTLICHEN Configfile ersetzen willst (in deinem Fall eben die IP) durch einen moeglichst eindeutigen Token, machst es dort schreibgeschuetzt. Dann fuehrst du `sed` so aus, dass der Token in einem Substitute-Statement durch den tatsaechlichen, wie auch immer errechneten Wert ersetzt wird, und leitest das ganze via Output Redirection in das eigentliche Config-File.

Wenn du z. B. ##IPADDR## als Token verwenden willst, etwa so:
Code:
#/bin/bash
TMP_IP="$(/sbin/ip addr show eth0 | awk '(NR==3){split($2,a,"/"); print a[1]}')"
sed "s/##IPADDR##/${TMP_IP}/g" /path/to/template.conf > /path/to/real.conf
/start/wonderland/here
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten