下面是一个用于检查正在监听的端口并在其监听时运行命令的 Bash 脚本示例:
#!/bin/bash
# 定义要检查的端口
port=8080
# 检查端口是否正在监听
if netstat -tuln | grep ":$port " >/dev/null; then
echo "端口 $port 正在监听"
# 在端口监听时运行的命令
# 这里只是一个示例,你可以根据需要替换成你的实际命令
echo "运行你的命令"
else
echo "端口 $port 未监听"
fi
在上面的示例中,我们首先定义了要检查的端口变量 port
,这里设置为 8080。
然后,我们使用 netstat -tuln
命令来列出当前监听的 TCP 和 UDP 端口,并使用 grep
过滤出与给定端口匹配的行。如果有匹配的行,则说明端口正在监听。
在 if
语句中,我们使用 >/dev/null
将输出重定向到空设备,以避免输出到终端,只显示我们想要的结果。
如果端口正在监听,我们在 if
语句的块中运行我们想要的命令。这里只是一个示例,你可以根据实际需要替换为你的命令。
如果端口未监听,则在 else
语句中输出相应的消息。
要运行以上代码,你可以将其保存为一个脚本文件(例如 check_port.sh
),然后在终端中运行 bash check_port.sh
。