Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Problem beim lesen einer konfiguration ...

  1. #1
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615

    Problem beim lesen einer konfiguration ...

    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?
    Code:
    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
    }
    Bodo
    Systemadmistration UNIX

  2. #2
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Ich hab das ganze jetzt ein wenig anders gestalltet:
    Code:
    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
    Bodo
    Systemadmistration UNIX

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    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
    Code:
    . configfile
    echo Var1 is $VAR1
    echo Var2 is $VAR2
    ----- configfile
    # Dies ist ein Configfile. blablabla
    VAR1=Foo
    VAR2=Bar

  4. #4
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Zitat Zitat von Joghurt Beitrag anzeigen
    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
    Code:
    . 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.
    Bodo
    Systemadmistration UNIX

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •