У меня есть этот сценарий оболочки, который продолжает работать постоянно.
#!/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
Этот оператор проверяет шлюз по умолчанию и выдает ошибку, даже если есть малейшая проблема в сети
Обратитесь к этому ответу для подробного объяснения