[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ini-style Konfigurationen mit Shellscripten verarbeiten
[Thread Prev] | [Thread Next]
- Subject: Re: ini-style Konfigurationen mit Shellscripten verarbeiten
- From: Alexander Holler <holler@xxxxxxxxxxxxx>
- Date: Wed, 19 Nov 2008 13:28:47 +0100
- To: uugrn@xxxxxxxxxxxxxxx
Hallo, Raphael Becker schrieb: > Hallo zusammen, > > auf der Suche nach einer Moeglichkeit, config-Files in Shell wirklich > sicher zu verarbeiten, bin ich auf confget gestossen. > > http://devel.ringlet.net/textproc/confget/ > > Das Tool funktioniert scheinbar ganz gut. ABER: portable Shellscripte > koennen damit nicht umgehen, weil man nicht annehmen darf, dass "confget" > auf allen Systemen verfuegbar ist. > > Was man annehmen darf ist, dass ein "standard-sed" oder ein > "standard-awk" existieren. Letztlich braucht man nur eine Funktion, die > ein beliebiges Config-Format in gueltige Bourneshell-Variablenzuweisungen > umwandelt. Beliebig wuerde bedeuten, jemand kann mit XML ankommen. ;) Ich wuerde dafuer voellig auf sed oder awk verzichten und nur bash voraussetzen. Die meisten Sachen fuer die man sed hernehmen wuerde, sind mit der bash auch machbar. D.h. man nimmt z.B. var1=$(var2/blafasel/} anstatt sowas mit sed oder awk zu bewerkstelligen. Wenn man sich auf das simple und meiner Meinung nach sehr gut (menschen-)lesbare Format var = wert beschraenkt, ist das nicht sonderlich viel was man da tippen muss. Ich schaetze das erschlaegt man mit 10-20 Zeilen. Quickalgo: - Fuer jede Zeile - Leading und Trailing Whitespaces loeschen - Erstes Zeichen = # -> naechste Zeile (Kommentar) ansonsten - erstes Wort = variablenname - Rest der Zeile nach = und abzueglich leading Whitspaces ist der Wert. Wer mehr Ansprueche hat, muss eben genau definieren, was er denn einlesen will und wie robust der "Parser" gegen Mist in der Konfigurationsdatei abgesichert sein muss. Das kann man beliebig kompliziert gestalten und laesst sich ganz sicher nicht generell und einfach loesen. Gruss, Alexander -- http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/