Você pode usar um loop while em um script de shell:
failed=1 # any number not equal to zero
while [ $failed -ne 0 ]
do
ping -n 8.8.8.8
failed=$?
done
# after the $? becomes "0" it will get out of the while loop
echo "ping succeeded"
Para deixar de imprimir a mensagem connect: Network is unreachable
, você pode editar a linha com ping assim:
ping -n 8.8.8.8 2> /dev/null
Ou você pode adicionar um sleep
no loop para reduzir o número dessas mensagens.
O script pode ser simplificado para
while ! ping -n 8.8.8.8
do
sleep 1
done
Que permite que seja escrito em uma linha:
while ! ping -n 8.8.8.8; do sleep 1; done