Как выполнить команду, когда интернет вернулся

Иногда мой Wi-Fi подключен к маршрутизатору, но мой маршрутизатор не подключен к Интернету. Как я могу выполнить команду, когда мой интернет вернулся (из командной строки)? Я хочу выполнить:

mpg123 /home/user/file.mp3 

Попробуй это:

 #!/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 

Он покажет вам сообщение «без Интернета», если нет ответа на пинг. И если он получит ответ, он выполнит вашу команду и уйдет.

Вы можете периодически пинговать веб-сайт и выполнять свою команду, когда ping возвращает успех. Что-то вроде следующего …

 result=1 while [ $result -ne 0 ] do ping -c 1 www.google.com result=$? sleep 5 done mpg123 /home/user/file.mp3