我正在使用以下方法等待端口打开。
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
(为了便于阅读,分成多行)
它使用一个 shell 子 shell,其中包含带有逻辑“与”运算符的命令列表&&
;nc
只有第一个命令成功执行,才会运行第二个命令,等等;一旦所有nc
命令都成功,子 shell 的退出状态就为真,这将被否定,!
并且while
循环终止。