[Risolto] Interrompere un ciclo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

[Risolto] Interrompere un ciclo

Messaggio da fiamma »

Ciao
avrei bisogno di sapere come poter interropere un ciclo (while o for). Mi spiego meglio.

Dentro ad un ciclo for ho inserito una funzione composta da espressioni regolari :

#!/bin/bash

TE=`cat file`

for FILE in $TE ; do function tag(){
TE=`cat file`
sa=${TE#*/\">}
echo $sa > file
po=${sa%%*}
echo $po >> file_a
sa=${TE#*> file_a
}

tag

done

Questa funzione preleva delle informazioni da una porzione di codice proveniente da un file html.
Se eseguo il ciclo le info vengono prelevate correttamente ma arrivata all'ultima stringa, invece di bloccarsi, mi scrive in loop l'ultima stringa che trova.

Come faccio a bloccare il ciclo. Ho provato ad inserirlo in un while, in questo modo:

TE=`cat file`


while [ "$GE" ]
do
for FILE in $TE ; do function tag(){
TE=`cat file`
sa=${TE#*/\">}
echo $sa > file
po=${sa%%*}
echo $po >> file_a
sa=${TE#*> file_a
}

tag

GE=`cat file | egrep -i 'href=\"'`

done

done

.....il risultato non cambia.
Ultima modifica di fiamma il venerdì 17 ottobre 2008, 23:24, modificato 1 volta in totale.
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: Interrompere un ciclo

Messaggio da fiamma »

Ok risolto

Codice: Seleziona tutto

TE=`cat file`
GE=`cat file | egrep -i 'href=\"'`

while read GE
do
for FILE in $TE ; do function tag(){
TE=`cat file`
sa=${TE#*/\">}
echo $sa > file
po=${sa%%<br>*}
echo $po >> file_a
sa=${TE#*<a href=\"/title/tt}
po=${sa%%/\"*}
echo $po >> file_a
} 

tag

if grep 'href=\"' file
then
echo ok
else
break
fi
done

done < file
Ultima modifica di fiamma il sabato 18 ottobre 2008, 13:39, modificato 1 volta in totale.
Avatar utente
twilight
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3849
Iscrizione: giovedì 17 febbraio 2005, 16:29
Località: L'Aquila
Contatti:

Re: [Risolto] Interrompere un ciclo

Messaggio da twilight »

Per le prossime volte ricordati di mettere il codice tra i tag [ code] codice qui [/ code].
ciao
Avatar utente
fiamma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 256
Iscrizione: lunedì 31 marzo 2008, 21:05

Re: [Risolto] Interrompere un ciclo

Messaggio da fiamma »

Correggo lo script. Ho messo un ciclo di troppo:

Codice: Seleziona tutto

TE=`cat file`


for FILE in $TE ; do function tag(){
TE=`cat file`
sa=${TE#*/">}
echo $sa > file 
po=${sa%%<br>*}
echo $po >> file_a
sa=${TE#*<a href="/title/tt}
po=${sa%%/"*}
echo $po >> file_b
} 

tag 

if grep 'href="' file
then
echo "ok" 
else
break
fi

done
twilight ha scritto: Per le prossime volte ricordati di mettere il codice tra i tag [ code] codice qui [/ code].
ciao
Ok!  (yes)
Ultima modifica di fiamma il sabato 18 ottobre 2008, 13:40, modificato 1 volta in totale.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti