使用 netcat nc 检查多个端口

使用 netcat nc 检查多个端口

我正在使用以下方法等待端口打开。

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循环终止。

相关内容