Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [Shell] Problem mit Variablenbelegung

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.06.2004
    Beiträge
    21

    [Shell] Problem mit Variablenbelegung

    Hallo allerseits,

    ich habe folgendes Problem mit der Variablenbelegung in einer Schleife:
    Code:
    [...]
    
    COLUMNS=0
    
    find /usr/test | while read line; do
    	if [ `echo $line | awk -F / '{print NF-1}'` -gt $COLUMNS ]; then
    		COLUMNS=`echo $line | awk -F / '{print NF-1}'`
    	fi
    done
    
    [...]
    Das Problem ist, dass COLUMNS keinen Wert zugewiesen bekommt.
    Ein
    Code:
    echo $COLUMNS
    ergibt immer 0.
    COLUMNS scheint nur in der Schleife gueltig zu sein, ich muss in dem Script aber mit dem Wert von COLUMNS weiter arbeiten.

    Dachte schon irgendwas anderes ist faul, aber es stimmt alles.
    Ein simples
    Code:
    find /usr/test | while read line; do BLA=`uname`; echo $BLA; done; echo -e "\nHier muesste was stehen: $BLA"
    beweist es. In der Schleife ist $BLA belegt, danach steht ein leerer String in $BLA.

    Ich steh irgendwie auf'm Schlauch

    Hoffe jemand kann mir helfen, danke!

  2. #2
    Registrierter Benutzer
    Registriert seit
    23.11.2004
    Beiträge
    53

    Zuweisung

    versuch dochmal deine Zuweisung zu ändern:

    Nicht so: bla=`hallo`
    sondern: bla="hallo"

    dann ergibt ein echo $bla -> hallo
    Azubi
    Fachinformatiker (Systemintegration)
    DB-Systems GmbH

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.06.2004
    Beiträge
    21
    Hallo t23,

    ich brauche aber den Rückgabewert eines Kommandos in der Variable, deswegen werden mir doppelte Anführungszeichen nichts nützen.

    Aber ich habe mein Problem nun auf andere Art gelöst.
    Danke trotzdem.

    Gruß,
    pertze

  4. #4
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Zitat Zitat von pertze
    ... ich habe mein Problem nun auf andere Art gelöst.
    Wäre ja nett, wnenn andere auch von deinen Erfahrungen profitieren könnten Wie sieht denn deine Lösung aus?

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  5. #5
    Registrierter Benutzer
    Registriert seit
    11.06.2004
    Beiträge
    21
    In der Shell-Programmierung führen immer viele Wege nach Rom.
    Ich habe diesen Zwischenschritt umgangen und auf andere Weise gelöst, die aber nichts mehr mit dem oben genannten Problem zu tun hat.

    Und ich habe keine Lust hier ein völlig aus dem Kontext gerissenes Konstrukt hier zu posten, dass eh niemandem etwas nützen wird, da es sehr speziell ist.

    Desweiteren ist die obige Problematik nicht "gelöst".
    Ich verstehe immer noch nicht wieso ich in der while Schleife die Variable nicht belegen kann.

Lesezeichen

Berechtigungen

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