linux - EXPECT脚本,如何处理多页输出

标签 linux expect

我有一个期望脚本,将包含与交换机关联的所有 mac 地址的列表放入文件中。

#!/usr/bin/expect -f
spawn telnet 192.168.20.222
match_max 10000
expect "*?to continue*"
send -- "\r"
send -- "show mac \r"
expect -- "*?2626#*"
send -- "exit \r"
expect -- "*?2626>*"
send -- "exit \r"
expect "*?y/n*"
send -- "y \r"

一切正常,但如果地址太多,交换机会显示如下内容:

-- MORE --, next page: Space, next line: Enter, quit: Control-C

当然可以有N个页面,其中N个是未知的。
我应该怎么做?

最佳答案

send -- "show mac \r"
expect {
    "MORE --, next page" {send -- " "; exp_continue}
    "*?2626#*" {send -- "exit \r"}
}

关于linux - EXPECT脚本,如何处理多页输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064936/

相关文章:

linux - 在 zsh 中获取进程的 pid

linux - 如何在 Linux 上获得总体 CPU 使用率(例如 57%)

linux - 应用处理器内存映射

linux - 使用 expect 在远程机器上运行脚本

bash - 使用 expect(1) 登录 SSH。如何退出 expect 并留在 SSH 中?

linux - 期望忽略模式匹配并且不退出

linux - LVM , 导致服务器不再启动 :(

linux - I2C_SLAVE ioctl 目的

linux - 如何从expect脚本中捕获标准错误

expect - 如何确定 pexpect 发送的命令的退出状态代码