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:
codice:
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