포트가 열릴 때까지 기다리기 위해 다음을 사용하고 있습니다.
while ! nc -z 127.0.0.1 8080; do sleep 0.1; done
여러 포트를 확인하기 위해 위의 내용을 어떻게 수정할 수 있습니까? 따라서 스크립트는 모든 포트(예: 8080, 8081 및 8082)가 사용되는 경우에만 중지되어야 합니다.
답변1
nc
각 포트에 대해 별도로 실행해야 합니다 .
while ! (nc -z 127.0.0.1 8080 && nc -z 127.0.0.1 8081 && nc -z 127.0.0.1 8082)
do sleep 0.1
done
(가독성을 위해 여러 줄로 나누기)
이는 논리적 "and" 연산자가 포함된 명령 목록이 있는 쉘 하위 쉘을 사용합니다 &&
. 두 번째 nc
명령은 첫 번째 명령이 성공한 경우에만 실행됩니다. 모든 nc
명령이 성공하면 하위 쉘의 종료 상태가 true가 되며 이는 루프에 의해 무효화되고 !
루프 while
가 종료됩니다.