Pagina 1 di 1
Non riesco a realizzare questo script per shell
Inviato: sab 17 feb 2007, 20:01
da mordecai
Praticamente io vorrei uno script,in cui l'utente immette un range di valori,che possono ad esempio essere ip,e vengono sottoposti allo stesso programma.
Ad esempio il ping:se voglio pingare dall'ip 1.1.1.1 al 1.1.2.2. come posso fare?
ping -opzioni ip,ma fecendo cosi devo scrivere 1000 volte lo stesso comando
E inoltre come posso redirezionare l'output in un file di testo?IO riesco solo a redirezionare una stringa...
Grazie!

Inviato: sab 17 feb 2007, 21:55
da Karma
Per la scansione degli indirizzi devi utilizzare un ciclo for con 4 indici (ognuno per ogni numero dell'ip).
Per redizionare in un file o usi opzioni di salvataggio su file o più semplicemente posponi il simbolo ">" al comando mettendo accanto il nome in cui vuoi redizionarlo. es: ping IP > fileping.txt
Naturalmente per creare il ciclo devi verificare quale sia la sintassi del linguaggio di programmazione che stai usando...
Buon lavoro
Karma
Inviato: dom 18 feb 2007, 9:00
da gioco
Codice: Seleziona tutto
for ip in 1.1.1.1 1.1.1.2 1.1.2.1 1.1.2.2; do
ping -$OPZIONI $ip > file.out
done
Ti consiglio quest'ottima guida, con molti esempi:
http://www.pluto.it/ildp/guide/abs.html
Inviato: dom 18 feb 2007, 13:20
da mordecai
Ecco io vorrei una cosa simile,ma per 100 ip non posso mica scriverli tutti.
NOn ci sarebbe l'uso della wildcard ( * ) ???
comunque ora è periodo d'esame e non posso studiare la bash,ma quando mi sarò liberato la studierò tutta per bene!
GraziE!

Inviato: dom 18 feb 2007, 13:25
da mordecai
comunque ho provato a seguire l'esempio e mi dice:
Ciò succede quando l'ip immesso non è valido.
Inviato: dom 18 feb 2007, 14:13
da mauro
...secondo me succede se digiti una £ al posto di una $

Inviato: dom 18 feb 2007, 16:26
da targzeta
Codice: Seleziona tutto
i=1; while (( $i < 100 )); do ping -$OPZIONI 1.1.1.${i} > file.out; let i++; done
Spina