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.
[Risolto] Interrompere un ciclo
[Risolto] Interrompere un ciclo
Ultima modifica di fiamma il venerdì 17 ottobre 2008, 23:24, modificato 1 volta in totale.
Re: Interrompere un ciclo
Ok risolto
done
done < file
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 < file
Ultima modifica di fiamma il sabato 18 ottobre 2008, 13:39, modificato 1 volta in totale.
- twilight
- Imperturbabile Insigne

- Messaggi: 3849
- Iscrizione: giovedì 17 febbraio 2005, 16:29
- Località: L'Aquila
- Contatti:
Re: [Risolto] Interrompere un ciclo
Per le prossime volte ricordati di mettere il codice tra i tag [ code] codice qui [/ code].
ciao
ciao
» FAQ del forum! - Sito personale (EN) - Blog tecnico (IT) - Pagina personale
» Seguimi su Twitter e Identi.ca!
» Tutti gli altri link, su Google profile
» Seguimi su Twitter e Identi.ca!
» Tutti gli altri link, su Google profile
Re: [Risolto] Interrompere un ciclo
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
Ok! (yes)twilight ha scritto: Per le prossime volte ricordati di mettere il codice tra i tag [ code] codice qui [/ code].
ciao
Ultima modifica di fiamma il sabato 18 ottobre 2008, 13:40, modificato 1 volta in totale.
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti
