PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem beim lesen einer konfiguration ...



TheDodger
31-03-2005, 06:19
Ich versuche mir gerade eine Funktion zu bauen, die mir aus einer bestehenden (Apache2) Konfiguration ein paar Variablem rauslesen soll.
In der Datei können natürlich bestimmte Variablen nur 1x vorkommen, aber durch Kommentare sind die meistens extra erklärt.
Also werden vorher erstmal die Kommenten rausgefiltert.
In einer while Schleife wird dann der Rest durchgelaufen und bei Bedarf werden meine Variablen gefüllt.
Geb ich diese Variablen nach dem Durchlauf der while-Schleife aus, sind sie aber wieder leer. :(

Entweder ich seh den selbstgemachten Fehler nicht oder ich bin noch zu müde.
Vielleicht findet jemand von euch das Problem?


access=""
error=
transfer=


function getLogFile() {

local file=
file=`printf "%s%s" ${VIRTUALHOME} ${1}`

sed -e '/^[[:space:]]*#/d' -e '/^[[:space:]]*$/d' < ${file} |
while read line;
do
# $line auswerten ...
# echo " --> '${line}'"
if [ -z $access ] ; then
access=`echo "${line}" | grep CustomLog | awk -F' ' '{print $2}'`
fi

if [ -z $error ] ; then
error=`echo "${line}" | grep ErrorLog | awk -F' ' '{print $2}'`
fi

if [ -z $transfer ] ; then
transfer=`echo "${line}" | grep TransferLog | awk -F' ' '{print $2}'`
fi

done

echo $access
echo $error
echo $transfer
}

TheDodger
05-04-2005, 11:49
Ich hab das ganze jetzt ein wenig anders gestalltet:


function getLogFile() {

local file=

file=`printf "%s%s" ${VIRTUALHOME} ${1}`

data=`sed -e '/^[[:space:]]*#/d' -e '/^[[:space:]]*$/d' < ${file}`

for d in "${data}"
do
echo "${d}"
if [ -z $access ] ; then

access=`echo "${d}" | grep CustomLog | awk -F' ' '{print $2}'`
fi
done;
}


Das scheint zu funktionieren :)

Joghurt
05-04-2005, 21:33
Nur so als Tipp: normalerweise sourced man die Konfigdateien einfach ein, das erspart einem viel arbeit und macht die config-files flexibler (da es ja auch shellskripte sind) Beispiel
. configfile
echo Var1 is $VAR1
echo Var2 is $VAR2
----- configfile
# Dies ist ein Configfile. blablabla
VAR1=Foo
VAR2=Bar

TheDodger
23-02-2007, 08:46
Nur so als Tipp: normalerweise sourced man die Konfigdateien einfach ein, das erspart einem viel arbeit und macht die config-files flexibler (da es ja auch shellskripte sind) Beispiel
. configfile
echo Var1 is $VAR1
echo Var2 is $VAR2
----- configfile
# Dies ist ein Configfile. blablabla
VAR1=Foo
VAR2=Bar


Das wird dir bei einem VHost eines Apachen kaum helfen ...
Da musst du das Ding parsen.