[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [bash] Einlesen einer Datei



Am 22.01.2005 um 14:13 Uhr schrieb Nicolas Heuser <nicolas1023@gmx.net>:

> Thilo Engelbracht wrote:
> > Leider funktioniert Dein Lösungsvorschlag nicht...
> > 
> > [ ... ]
> 
> > Trotzdem würde mich mal interessieren, WARUM Dein Vorschlag nicht
> > funktioniert. Denn meine Lösung mit der temporären Datei finde ich nicht
> > gerade optimal. Deine Lösung gefällt mir deutlich besser!
> 
> natürlich wäre es hier wichtig zu wissen *was* nicht funktioniert. Kommt
> eine Fehlermeldung? Funktioniert das egrep -v '(^$|^#)' schon nicht wie
> gewünscht? werden die Zeilen nicht an die while Schleife übergeben? ...

Das ist wirklich komisch... Gerade habe ich mein Skript wie folgt
modifiziert:

     #!/bin/bash
     echo "Variablen:"
     if [ -f $1 -a -r $1 ]
     then
        quota=""
        grep -E -v '(^$|^#)' $1 | while [ -z "$quota" ]
        do
           read zeile
           account=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
           echo $account
           read zeile
           nkurz=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
           echo $nkurz
           read zeile
           nlang=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
           echo $nlang
           read zeile
           userkw=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
           echo $userkw
           read zeile
           mailkw=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
           echo $mailkw
           read zeile
           quota=`echo $zeile | cut -d : -f 2 | cut -d " " -f 2-`
           echo $quota
        done
     fi
     echo
     echo "Variablen:"
     echo $account
     echo $nkurz
     echo $nlang
     echo $userkw
     echo $mailkw
     echo $quota


Und hier die Ausgabe:

     Variablen:
     e-mail
     thilo
     Thilo Engelbracht
     geheim1
     geheim2
     -

     Variablen:
     [Leerzeile]
     [Leerzeile]
     [Leerzeile]
     [Leerzeile]
     [Leerzeile]
     [Leerzeile]


Es ist schon merkwürdig: Die Variablen werden bei der ersten Ausgabe
(innerhalb der "do ... done"-Anweisung) korrekt angezeigt - bei der
zweiten Ausgabe (also nach der "do ... done"-Anweisung) sind die
Variablen aber wieder "leer"...

Hast Du eine Idee?

Vielen Dank für Deine Mühe!

> Also ich hab es getestet auf nem woody System mit der grep Paketversion
> 2.4.2-3 und bash Version 2.05a-11

Auch ich habe woody. Meine Paketversionen sind identisch zu Deinen
Paketversionen.

> Nicolas

Gruß,

Thilo

--
Registered Linux user #348074 with the Linux counter
http://counter.li.org



Reply to: