Non riesco a realizzare questo script per shell

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
mordecai
Linux 3.x
Linux 3.x
Messaggi: 752
Iscritto il: mer 10 gen 2007, 21:59

Non riesco a realizzare questo script per shell

Messaggio 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 :cry:

E inoltre come posso redirezionare l'output in un file di testo?IO riesco solo a redirezionare una stringa... :?

Grazie! ;)

Avatar utente
Karma
Linux 2.x
Linux 2.x
Messaggi: 285
Iscritto il: mar 30 ago 2005, 0:00
Slackware: 12.0
Kernel: 2.6.23.1
Desktop: KDE 3.5
Località: Trento

Messaggio 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

Avatar utente
gioco
Packager
Packager
Messaggi: 900
Iscritto il: dom 19 giu 2005, 0:00
Slackware: last stable
Località: in the court of the Wesnoth king
Contatta:

Messaggio 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

mordecai
Linux 3.x
Linux 3.x
Messaggi: 752
Iscritto il: mer 10 gen 2007, 21:59

Messaggio da mordecai »

gioco ha scritto:

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
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! :lol:

mordecai
Linux 3.x
Linux 3.x
Messaggi: 752
Iscritto il: mer 10 gen 2007, 21:59

Messaggio da mordecai »

comunque ho provato a seguire l'esempio e mi dice:

Codice: Seleziona tutto

ping: unknown host £ip
Ciò succede quando l'ip immesso non è valido.

Avatar utente
mauro
Linux 2.x
Linux 2.x
Messaggi: 281
Iscritto il: gio 11 mag 2006, 21:51
Slackware: current
Kernel: uno degli ultimi...
Desktop: dwm

Messaggio da mauro »

...secondo me succede se digiti una £ al posto di una $ :)

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

Codice: Seleziona tutto

i=1; while (( $i < 100 )); do ping -$OPZIONI  1.1.1.${i} > file.out; let i++; done
Spina

Rispondi