Às vezes, meu wifi está conectado ao roteador, mas meu roteador não está conectado à internet. Como posso executar um comando quando minha internet estiver de volta (na linha de comando)? Eu quero executar:
mpg123 /home/user/file.mp3
Responder1
Experimente isto:
#!/bin/bash
while :; do
ping -c 1 8.8.8.8 >/dev/null 2>&1
if [ $? = 0 ]; then
break
else
echo 'No internet'
fi
sleep 1
done
mpg123 /home/user/file.mp3
Ele mostrará a mensagem 'sem internet' se não houver resposta de ping. E se obtiver a resposta, ele executará seu comando e sairá.
Responder2
Você pode executar ping periodicamente em um site e executar seu comando quando o ping retornar com sucesso. Algo como o seguinte...
result=1
while [ $result -ne 0 ]
do
ping -c 1 www.google.com
result=$?
sleep 5
done
mpg123 /home/user/file.mp3