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