Newsgroup: it.comp.os.linux.iniziare
Titolo: script con For

Ciao a tutti
vorrei chiedere una cosa:
ho una lista di file,vorrei fare un piccolo script che faccia un ls -lrt e
per ogni file faccia il tail -f dello stesso.
So che devo utilizzare un  ciclo for, ed è quello il problema, sono alle
prime armi...
Qualcuno ,mi potrebbe aiutare??
GRazie a tutti



il problema è che tail -f in un ciclo for non riesci ad interromperlo senza
interrompere il ciclo (almeno credo) con questa linea ti fa il tail per 5
secondi:
for i in `ls -rt`; do tail $i; sleep 5; done
nota che ls -rt è tra backticks "`" e che non ha l'opzione -l
HTH
-- 
  .-----------------------.
  | Emiliano Grilli       |
  | 
emi...@libero.it
      |
  | Linux user #209089    |
  | 
http://www.emillo.net
 |
  '-----------------------'

 nota che ls -rt è tra backticks "`" e che non ha l'opzione -l
$ mkdir test
$ cd test
$ echo 1 > "PrimoFile"
$ echo 2 > "Secondo File"
$ for i in `ls -rt`; do tail $i; sleep 5; done
1
tail: Secondo: No such file or directory
tail: File: No such file or directory
$ ls -rt|while read i; do tail "$i"; sleep 5; done
1
2
$ IFS=". "
$ echo 3 >Terzo.File
$ for i in `ls -rt`; do tail $i; sleep 5; done
tail: PrimoFile
Secondo: No such file or directory
tail: File
Terzo: No such file or directory
tail: File: No such file or directory
$ ls -rt|while read i; do tail "$i"; sleep 5; done
1
2
3
Meglio fare un while...
Ciao,
-- 
       Roberto Divia`             Love at first sight is one of the greatest
       =============             labour-saving devices the world has ever seen.
Mailbox: C02110                 CERN-European Organization for Nuclear Research
E-mail: 
Robert...@cern.ch
           CH-1211 GENEVE 23, Switzerland

 Meglio fare un while...
OK grazie della dritta, è che di solito non uso spazi nei filename...
Ciao


 OK grazie della dritta, č che di solito non uso spazi nei filename...



Che complicazioni !!!!
for i in `ls -rt`; do  tail $i|less ; done
ti mostra la coda di ogni singolo file, premendo "q" chiudi il
less e passi al successivo
Mi sembra che ci sia un'opzione di less che fa aprire il file
all'ultima pagina. In quel caso
 for i in `ls -rt`; do less -??? $i ; done
dove ??? sarà l'opzione misteriosa
Altrimenti
for i in `ls -rt`; do echo ====$i===== ;  tail $i>> pippo  ; done
poi leggi pippo con un less
ciao, Andrea

 
ovviamente doveva essere:
for i in `ls -rt`; do echo ====$i===== >>pippo;  tail $i>> pippo  ; done
ciao, Andrea

 Che complicazioni !!!!
Si ma non hai afferrato il punto che giustamente Roberto ha fatto notare:
se hai un filename con spazi il "for i in `ls`" non funziona.
Ciao


 
Quello non lo avevo considerato, anche perché l'interessato 
scrive che:
"OK grazie della dritta, è che di solito non uso spazi nei filename..."
Quando mi riferivo alle "complicazioni", mi riferivo all'uso dello sleep,
che ti obbliga a vedere un tail per un numero prefissato di secondi.
ciao, Andrea

 Meglio fare un while...
[*] no sono gli apici che contano
    non barare ;-)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

     non barare ;-)
Barare io? Mai! No, hai ragione: sono gli apici. Il problema e` che gli
apici si possono mettere sulla "tail" ma NON sul "for". Ecco perche` il
while funge (il while legge linea per linea, usando il CR come separatore
mentre il for usa gli spazi come separatore...).
P.S. Sai cosa sono gli apici? Sono insettici che volano di fiorice in fiorice.
