Anzeige:
Ergebnis 1 bis 3 von 3

Thema: While Schleife

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.10.2005
    Beiträge
    15

    While Schleife

    Hi,

    ich habe eine Frage bezüglich der While-Schleife und Shell-Script ...

    und zwar wollte ich eine Liste zeilenweise per
    Code:
    while read LINE
    do
    [...]
    done
    auslesen.
    Aber zusätzlich sollte innerhalb der Schleife eine weitere ausgeführt werden.
    Hier mein Beispiel:
    Code:
    		
    cat sowieso.txt
    while read LINE
    do
                    #read the ip's
    		cat netscandn.tmp |\
    
    		#check if user is online
    		if grep -s $2 
    		then
    
    			#read ip
    			awk -F: '{print $1}' > userfound.tmp
    			cat userfound.tmp |\
    			#read userfound
    			while read USER
    			do
    			
    			#send message
    			net send $USER $1
    			echo \<br\>
    			done
    			#write user to online
    			echo $2  >> onlineuser.tmp
    
    		else
    			echo \<br\>
    			echo $2 offline
    
    			#write user to offline
    			echo $2  >> offlineuser.tmp
    		fi
    done
    Aber irgendwie macht der da nichts. Wenn ich die innere while-Schleife raus nehme klappt alles, nur nicht so wie ich es will (brauch den awk Befehl zur userfound.tmp (mit evtl mehreren Einträgen))

    ICh hoffe mir kann hierbei jemand helfen, oder Infos geben.
    Wäre echt super ... schonma Danke! im Voraus...

    Gruß
    Benni

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.11.2005
    Beiträge
    18
    Ohne dass du eine Art Testumgebung - oder zumindest eine genauere Spezifikation der Problemstellung - zur Verfuegung stellst, kann ich dir nicht sicher helfen; ich versuch es trotzdem:

    Code:
    while read LINE;
    do
    		echo "some code [...]";
    		while read INNEN;
    		do
    			echo ${INNEN};
    		done < inputfile_fuer_innen
    		echo "${LINE} abgearbeitet"
    done < inputfile_fuer_auszen
    Ansonsten faellt mir in deinem Code (abgesehen davon, dass er verdammt krude wirkt ) auf, dass du mit temporaeren Dateien anstelle von Pipes arbeitest, was suboptimal ist. `cat file | grep` ist auch unnoetig, da grep nicht nur von stdin lesen kann.


    Wenn du einen tarball mit Beispieldaten bereitstellst, die das Problem etwas genauer chartakterisieren, kriegen wird das aber sicher noch hin

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.10.2005
    Beiträge
    15
    hi,

    danke für den Hilfsversuch ...

    meine Schleife hat funktioniert, jedoch nicht das vorhergehende, die Parameterübergabe an das shell script.

    Versuche jetzt das ganze komplett in einem Perl script unterzubekommen, ohne ein externen Scriptauffruf. Werd ich zwar nicht ganz schaffen, aber hoffe ma das zweite ...

    Weiß zwar da auch nicht mehr weiter, aber die Frage hab ich in einem extra Thread gepostet.

    Danke nochmal

    Gruß
    Benni

Lesezeichen

Berechtigungen

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