Старый пост, но в качестве совета вы можете использовать опцию -w
в ping, чтобы избежать цикла. Например,
ping -w 30 -c 1 host
будет пытаться в течение 30 секунд с одним пингом в секунду (по умолчанию ping имеет интервал в 1 секунду между пингами) и завершит попытку при первом успешном пинге.
Если вам не нужен таймаут, т.е. ждать вечно, просто используйте очень большое значение с -w
.