Variablen mehrfach ansprechen ?

Dieses Thema: "Variablen mehrfach ansprechen ?" im Forum "Shell-Skripte" wurde erstellt von r00ki3, 12.07.2005.

  1. r00ki3

    r00ki3 Jungspund

    Dabei seit:
    29.06.2005
    Beiträge:
    20
    Zustimmungen:
    0
    Hallo ihrs,

    kann ich eigentlich eine Variable innerhalb eines Skripts mehrfach setzen ?
    Ich habe folgendes gemacht:

    #schleife 1
    cat file | while
    read key extern intern
    [ do stuff with $]; done

    #schleife 2
    cat file | while
    read key extern intern
    [ do stuff with $]; done

    Nun ist es so, daß innerhalb der zweiten Schleife die $key $intern $extern nicht ausgelesen werden ( mittels echo $var überprüft ). Liegt es daran, daß diese schon einmal verwendet wurden oder so ? Ich habe die Steuerdatei mal mit anderen Variablennamen lesen lassen, funzt auch nicht.

    Bestimmt klassischer Anfänger - lapsus :-)

    Daniel
     
  2. #2 Schlaubi_fi.de, 12.07.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Hää wie meinst du das??

    Code:
    echo huhu1 huhu2 huhu3 | while read key extern intern; do
        echo $key $extern $intern;
    done
    
    echo huhu4 huhu5 huhu6 | while read key extern intern; do
        echo $key $extern $intern;
    done
    
    und die Ausgabe ist:

    Code:
    huhu1 huhu2 huhu3
    huhu4 huhu5 huhu6
    
    also wo ist das Problem? :think:
     
  3. r00ki3

    r00ki3 Jungspund

    Dabei seit:
    29.06.2005
    Beiträge:
    20
    Zustimmungen:
    0
    #Schleife A

    cat /usr/bin/paycipher/key.id | while
    read key extern intern
    do
    for up in `find /usr/bin/paycipher/$key -follow -mindepth 3 -mmin +1 -iname "*.*"`
    do ......stuff ....done.


    --> Die Variablen werden korrekt gefunden und sind lesbar mit echo $var.


    #Schleife B

    cat /usr/bin/paycipher/key.id | while
    read key extern intern
    do
    ....stuff....

    echo "Steuersatz:" $key
    echo "Gefunden: "$up

    Beide Schleifen befinden sich im selben Skript.
    Die variablen sind ab Schleife B nicht / mehr lesbar, es werden leere Strings ausgegeben. Demzufolge kann ich deren Werte nicht als Argumente an andere
    Programmaufrufe im Skript weitergeben.



    Ideas ?

    Daniel
     
  4. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Klar.. Schleife B ist ja ausserhalb der Schleife A. Wenn ich es recht verstanden habe, setzt du $key ja mehrmals neu (bei jedem Durchgang). Wenn die Schleife also beendet ist, ist $key entweder noch vom letzten Durchlauf gesetzt oder leer (bin mir da nicht sicher).

    Mit der Schleife B könntest du also maximal auf das letzte gefundene Element der Schleife A zugreifen wenn die Shell nach dem while diese Variablen überhaupt rausgibt.

    Was du tun kannst ist sowas:
    Code:
    export counter=0
    cat file | while
    read key extern intern
    safekey[$counter]=$key
    counter=`expr $counter + 1`
    [ do stuff with $]; done
    Es gibt eine schönere Art, eine Variable zu Inkrementieren in der Bash.. aber so ist mehr oder weniger allgemeingültig. Dasselbe machst du auch beim Zugreifen! Einfach mit ${array[nr]} (GLAUBS! lange nicht mehr gemacht...).
     
Thema:

Variablen mehrfach ansprechen ?

Die Seite wird geladen...

Variablen mehrfach ansprechen ? - Ähnliche Themen

  1. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...
  2. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...
  3. Teil einer Variablen auslesen und in neue Variable schreiben

    Teil einer Variablen auslesen und in neue Variable schreiben: Hallo, ist für Euch bestimmt ganz einfach, aber trotz googlen komme ich nicht auf eine Lösung. In Variable x habe ich stehen: xy,ab Nun möchte...
  4. Inhalt einer Variablen aus Batch an Shellscript übergeben

    Inhalt einer Variablen aus Batch an Shellscript übergeben: Hallo, ich komme einfach nicht drauf. Wie kann ich den Wert aus einer Variablen eines Batches an mein Shellscript übergeben? So? #...
  5. Script inclusive Variablen.

    Script inclusive Variablen.: Hallo Community, Ich lerne gerade Java und arbeite seit kurzem auf einem Linux Rechner. Ich moechte gerne Befehle im Terminal abkuerzen dh...