我对编程很陌生。在我的脚本中,我需要运行多个 ping 命令。
我正在运行下面提到的命令:ping $ip rep 100 size 1500
如果连接成功,那么一切都很好,但如果 ping 响应不会出现,那么它将继续 ping 设备直到 100 次,这会花费很多时间。如果我得到如下命令的输出,我想将其中断并切换到下一个命令:
输入转义序列以中止。发送 100 个 1500 字节的 ICMP Echos 到 $ip,超时为 2 秒:......
我尝试使用正则表达式和不同的 ASCII 代码来破坏它,但所有其他选项仅在对设备进行 100 次 ping 后才起作用。
任何帮助,将不胜感激。
答案1
一种选择可能是timeout
设置整个命令的最大持续时间。因此,您可以ping
运行 100 次 ping,但如果它无法在 200 秒(总计)内完成,那么它将退出。
timeout 200 ping $ip rep 100 size 1500
答案2
这是未经测试的:
spawn ping ...
expect {
"Type escape sequence to abort. Sending 100, 1500-byte ICMP Echos to $ip, timeout is 2 seconds:" {
send -- "\x03" ;# send Ctrl-C
exp_continue
}
eof
}
答案3
仅 ping 预定义的次数怎么样?例如
ping -c 5