![1秒後に応答がない場合はpingコマンドを停止する方法は? [コピー]](https://linux33.com/image/91324/1%E7%A7%92%E5%BE%8C%E3%81%AB%E5%BF%9C%E7%AD%94%E3%81%8C%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%81%AFping%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%81%9C%E6%AD%A2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
接続が確立されていることを確認するためにループを作成しています。
私は仕事をします。
ping -c 1 8.8.8.8
while [ $? -ne 0 ] do
sleep 0.5
ping -c 1 8.8.8.8
done
これでこれがどのように機能するのかよくわかりません。 ping要求の実行中に(iptablesまたは他の)ブロックすると、コマンドとスクリプトは無期限に中断されます。私が望むのは、1秒後に応答を待たずに新しい要求を送信することです。 0に等しく、1秒以上以内に応答を受信するまで$?
ループは中断されます。
答え1
while ! (ping -c 1 -W 1 8.8.8.8 > /dev/null); do
sleep 1
done
echo "< 1 sec reply received...exiting"