在 bash 脚本中停止 Ping 进程?

Stopping the Ping process in bash script?

我创建了一个 bash 脚本来 ping 我的本地网络以查看哪些主机正在运行,并且在启动后使用 ctrl+C 停止 Ping 过程时遇到问题 我发现暂停它的唯一方法,但即使是 kill 命令也不适用于 Ping

的 PID
submask=100
for i in ${submask -le 110}
do
    ping -n 2 192.168.1.$submask
    ((submask++))
done

我建议您使用 -c 选项限制 ping 发送的数据包数量。

我还纠正了 bash 语法,猜测你打算做什么。

最后,运行 所有 ping 进程与操作数 & 并行处理速度更快。

尝试:

for submask in ${100..110}
do
    echo ping -c 1 192.168.1.$submask &
done

Ctrl + C 退出 ping,但另一个 ping 开始。所以你可以使用陷阱。

#!/bin/bash

exit_()
{
        exit
}

submask=100
while [ $submask -le 110 ]
do
    fping -c 2 192.168.77.$submask
   ((submask++))
   trap exit_ int
done