Я думаю, что это должно быть изменено на какое-то время, в настоящий момент он будет ждать, пока все 10000 пингов не будут выполнены, мне нужно, чтобы он вернулся, когда пинг прошел успешно. Программа "say" находится на OSX, и заставляет компьютер говорить.
#!/bin/bash
echo begin ping
if ping -c 100000 8.8.8.8 | grep timeout;
then echo `say timeout`;
else echo `say the internet is back up`;
fi
ОК У меня нет прав отвечать на мой собственный вопрос, так вот мой ответ для него после игры:
Спасибо, да, я не знал о $? до сих пор. В любом случае, теперь я ушел и сделал это. Мне нравится, что твой не уходит навсегда, но в моей ситуации мне не нужно было останавливаться, пока он не закончится.
#!/bin/bash
intertube=0
echo "begin ping"
while [ $intertube -ne 1 ]; do
ping -c 3 google.com
if [ $? -eq 0 ]; then
echo "ping success";
say success
intertube=1;
else
echo "fail ping"
fi
done
echo "fin script"