1秒後に応答がない場合はpingコマンドを停止する方法は? [コピー]

1秒後に応答がない場合はpingコマンドを停止する方法は? [コピー]

接続が確立されていることを確認するためにループを作成しています。

私は仕事をします。

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"

おすすめ記事