Seu problema vem do comando ping que nunca sai.
Você deve fazer um loop que chame ping
para um teste -c 1
:
while [ true ] ; do if ping -c 1 www.google.com | grep timeout ; then say fail ; fi ; sleep 1 ; done
editar
- Eu escrevi um loop
bash
while, talvez você devesse adaptá-lo ao seu programa shell (faz muito tempo que eu uso o mac os X), - Eu adicionei uma pausa (um segundo) para evitar que o loop consuma muita CPU ...