On 26 Jul 2006, at 00:33, Charles Howse wrote: > ... > if [ ! "`ping -c 3 google.com | grep packets`" == "$offline" ] ; then > date >> $logfile > echo host1 online, exiting >> $logfile > exit 0 > elif > [ ! "`ping -c 3 microsoft.com | grep packets`" == "$offline" ] ; then > date >> $logfile > echo host2 online, exiting >> $logfile > exit 0 > elif > [ ! "`ping -c 3 yahoo.com | grep packets`" == "$offline" ] ; then > date >> $logfile > echo host3 online, exiting >> $logfile > exit 0 > else > what_failed > fi > > exit 0 This grepping for "offline" seems a little contrived, if you'll excuse me mentioning it. You set an exit staus with your script, so why not trust others to do so, too? $ ping -c 3 google.com PING google.com (72.14.207.99): 56 data bytes 64 bytes from 72.14.207.99: icmp_seq=0 ttl=243 time=90.402 ms 64 bytes from 72.14.207.99: icmp_seq=1 ttl=243 time=169.823 ms 64 bytes from 72.14.207.99: icmp_seq=2 ttl=243 time=90.617 ms --- google.com ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 90.402/116.947/169.823/37.389 ms $ echo $? 0 $ ping -c 3 hgurhurhrhufhrh.com ping: cannot resolve hgurhurhrhufhrh.com: Unknown host $ echo $? 68 $ `man ping` says: RETURN VALUES The ping utility returns an exit status of zero if at least one response was heard from the specified host; a status of two if the transmission was successful but no responses were received; or another value (from <sysexits.h>) if an error occurred. I'm not sure how valuable it is to make 3 ping requests, but should you wish to do so then I think I might `grep -o '[[:digit:]]\{1,3\}% packet loss' and provide this as output to the user. Stroller