У меня есть этот сценарий оболочки, который работает постоянно.
#!/bin/sh
while true;
do ping -c1 www.google.com > /dev/null;
done
Когда я отключаю свой сетевой кабель, этот скрипт выдает ошибку в терминале
ping: unknown host www.google.com
но для выдачи ошибки требуется некоторое время.
Я хочу, чтобы он немедленно выдал ошибку, даже если я отключу свой сетевой кабель на несколько миллисекунд, а затем быстро подключу его. Как мне это сделать?
Я решил проблему с помощью этого утверждения:
ping -q -w 1 -c 1 `ip r | grep default | cut -d ' ' -f 3` > /dev/null && echo ok || echo error
Этот оператор проверяет шлюз по умолчанию и выдает ошибку, даже если есть малейшие проблемы в сети.
Обратитесь к этому ответьте для подробного объяснения