PDA

Visualizza la versione completa : Script stupido


detroit
16-03-2009, 18:16
Ho questo script

URL=$@
PING=`ping -c 15`

if [ "$#" -lt 1 ] ; then
echo "Inserisci un url oppure un ip"
else
echo "Sto pingando, attendi i 15 hit" & `${PING}` ${URL}
fi


Però mi restituisce un errore alla riga che ho segnato in neretto probabilmente perchè la variabile $PING non è interpretata bene e cioè come un comando da eseguire.Dove sbaglio?

cacao74
16-03-2009, 23:43
Originariamente inviato da detroit
PING=`ping -c 15`
...
echo "Sto pingando, attendi i 15 hit" & `${PING}` ${URL}

ad occhio direi di riscriverlo cosi':


PING='ping -c 15'
...
echo "Sto pingando, attendi i 15 hit" && `${PING}` ${URL}


ciao

detroit
17-03-2009, 13:22
Grazie per la risposta!Non funziona uguale però.Praticamente non riconosce $PING come comando nonostante sia tra apici rovesciati.

cacao74
17-03-2009, 13:50
Originariamente inviato da detroit
Grazie per la risposta!Non funziona uguale però.Praticamente non riconosce $PING come comando nonostante sia tra apici rovesciati.
colpa mia che li ho lasciati... non servono nella riga in cui lanci il ping, pardon!


echo "Sto pingando, attendi i 15 hit" && ${PING} ${URL}

detroit
17-03-2009, 14:00
grazie !
errata corrige ,continua a non funzionare

detroit
17-03-2009, 15:54
Ci sono arrivato, l'errore era nella riga in grassetto, assegnare un valore ad una variabile in quel modo, con comando incluso garantisce l'esecuzione dello stesso

URL=$@
PING=$(ping -c 2 $URL)

if [ "$#" -lt 1 ] ; then
echo "Inserisci un url oppure un ip"
else
echo "Sto pingando, attendi i 15 hit" ${PING}
fi

cacao74
17-03-2009, 22:28
Originariamente inviato da detroit
Ci sono arrivato, l'errore era nella riga in grassetto, assegnare un valore ad una variabile in quel modo, con comando incluso garantisce l'esecuzione dello stesso

URL=$@
PING=$(ping -c 2 $URL)

if [ "$#" -lt 1 ] ; then
echo "Inserisci un url oppure un ip"
else
echo "Sto pingando, attendi i 15 hit" ${PING}
fi
Quello che hai scritto "funziona" ma a mio avviso non in modo corretto o come tu credi funzioni.
Infatti inizia a pingare non appena valorizzi la variabile PING e non quanto fai l'echo

Per dover di cronaca, quanto ti dissi, applicato al tuo script originario, funziona alla grande:


minnie:~ cacao74$ cat cacao.sh
#!/bin/bash
URL=$@
PING='ping -c 3'

if [ "$#" -lt 1 ] ; then
echo "Inserisci un url oppure un ip"
else
echo "Sto pingando, attendi i 15 hit" && ${PING} ${URL}
fi

minnie:~ cacao74$ ./cacao.sh www.html.it
Sto pingando, attendi i 15 hit
PING www.html.it (151.1.244.200): 56 data bytes
64 bytes from 151.1.244.200: icmp_seq=0 ttl=54 time=22.385 ms
64 bytes from 151.1.244.200: icmp_seq=1 ttl=54 time=21.592 ms
64 bytes from 151.1.244.200: icmp_seq=2 ttl=54 time=57.231 ms

--- www.html.it ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 21.592/33.736/57.231/16.617 ms

ciao

detroit
17-03-2009, 22:54
e perchè a me non funziona???

detroit
17-03-2009, 22:57
sono fesso io,non avevo visto che nella tua prima risposta avevi sostituito gli apici rovesciati con quelli normali :D

Loading