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"

관련 정보