![Windows 上“nc -z localhost 3300”的替代方案](https://linux22.com/image/764966/Windows%20%E4%B8%8A%E2%80%9Cnc%20-z%20localhost%203300%E2%80%9D%E7%9A%84%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88%20.png)
我有一个要在 Linux 中运行的 sh。
但是我使用的是 Windows,所以我必须能够在 Windows 中运行它
有一段代码执行以下操作
while ! nc -z localhost 3300; do
echo "Waiting for MariaDb"
sleep 0.1
done
但是由于 nc 不起作用,我无法在 Windows 中复制它。
精确命令的替代方法是什么?
答案1
我相信你可以用基本方法做到这一点telnet
,但 powershell 可能有更好的方法。这是在 bash 中可以做到的:
$ exit=0 ; while (( exit != 1)) ; do { echo "open 127.0.0.1 22" ; sleep 2; } | \
telnet 2>/dev/null | grep -q '^Connected to 127.0.0.1.' && exit=1 || echo 'Waiting for SSH...' ; done
Waiting for SSH...
Waiting for SSH...
Waiting for SSH...
Waiting for SSH...
Waiting for SSH...