# wait for host to become online
while true; do
ping host -c 1 -w 3 > /dev/null && break;
sleep 1
done
Ctrl+ 를 누르면 Cping이 이를 선택하고 종료 코드 1(호스트 종료와 동일)로 종료됩니다. 이 작업을 올바르게 수행하려면 어떻게 해야 합니까?
해결 방법: sleep 1 || break
^C를 두 번 누릅니다.
답변1
trap "exit 1" INT
while true; do
ping host -c 1 -w 3 > /dev/null && break;
sleep 1
done
trap - INT # restore handler
답변2
루프를 너무 이상하게 작성하지 마세요.
until ping host -c 1 -w 3
do sleep 1
done >/dev/null
위의 작업을 수행하려면 다음이 필요합니다.최대^C
sleep
루프를 종료하려면 두 번의 연속 키 입력이 필요합니다 . 그러나 다시 레이어를 추가하면 다음과 같습니다 .
sh -c '
until ping host -c 1 -w 3
do sleep 1
done' >/dev/null
...그 둘은 필요하지도 않아요.