0

我创建了一个 bash 脚本来 ping 我的本地网络以查看哪些主机已启动,并且我在使用 ctrl+C 停止 Ping 进程时遇到问题,一旦它启动是我发现暂停它的唯一方法,但即使是 kill 命令也没有t 使用 Ping 的 PID

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

2 回答 2

1

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

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

ping最后,与操作数并行运行所有进程会更快&

尝试:

for submask in ${100..110}
do
    echo ping -c 1 192.168.1.$submask &
done
于 2020-04-29T14:56:15.303 回答
1

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
于 2020-04-29T16:39:07.970 回答