TheDodger
31-03-2005, 07: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
}
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
}