Manchmal ist mein WLAN mit dem Router verbunden, aber mein Router ist nicht mit dem Internet verbunden. Wie kann ich einen Befehl ausführen, wenn mein Internet wieder da ist (von der Befehlszeile aus)? Ich möchte Folgendes ausführen:
mpg123 /home/user/file.mp3
Antwort1
Versuche dies:
#!/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
Wenn keine Ping-Antwort erfolgt, wird die Meldung „Kein Internet“ angezeigt. Wenn eine Antwort erfolgt, wird Ihr Befehl ausgeführt und das System beendet.
Antwort2
Sie können in regelmäßigen Abständen eine Website anpingen und Ihren Befehl ausführen, wenn der Ping erfolgreich ist. Etwa so:
result=1
while [ $result -ne 0 ]
do
ping -c 1 www.google.com
result=$?
sleep 5
done
mpg123 /home/user/file.mp3