目前我有一个脚本,它从下面的菜单响应中提取行#号,其中包含我对“SalVhugoV3”感兴趣的 SNMP 用户。
这是蓝色的菜单响应
选择一个 SNMP 用户:1)cmssnmp 2)atlas 3)SalVhugoV3 输入选项(1-3):
脚本的这个工作部分查找包含“SalVhugoV3”的字符串并去掉选项#3,因为这是它正在寻找的用户的选项。然后发送“3”作为“输入选择”提示的 snmpuserChoice。
从列表/菜单中选择 V3 用户,grep $V3USER 并发送它的号码
expect -re ".*\\(.*\\):" {
append rawOut $expect_out(buffer)
regexp { .*(([0-9])\) [puts $V3USER].*) } $expect_out(buffer) cmdOut snmpUser snmpUserChoice
exp_send -- "$snmpUserChoice\r"
}
我正在尝试做同样的事情,但使用此扩展响应,因为您可以看到在这种情况下我正在寻找的用户的选项是选项“5”,因为它在字符串末尾包含“SalVhugoV3”。我相信这是需要改变“ regexp { . (([0-9])) [放置$V3USER]。) } “但我不知道如何修改它以获取选项“5”编号,以便可以通过“exp_send”发送。
选择要删除的 SNMP 连接: 1) 与 NMS 的连接:主机 135.9.60.143,端口 162,用户 cmssnmp 2) 与 SAL 的连接:主机 135.9.158.252,端口 162,用户 cmssnmp 3) 与 SAL 的连接:主机 135.9.158.236,端口 162,用户 cmssnmp 4)连接到 NMS:主机 135.105.6.67,端口 162,用户图集 5)连接到 SAL:主机 135.60.25.147,端口 162,用户 SalVhugoV3 输入选项(1-5):
从列表/菜单中选择 V3 用户,grep $V3USER 并发送它的号码
expect -re ".*\\(.*\\):" {
append rawOut $expect_out(buffer)
regexp { .*(([0-9])\) [puts $V3USER].*) } $expect_out(buffer) cmdOut snmpUser snmpUserChoice
exp_send -- "$snmpUserChoice\r"
}