针对Casa CMTS /路由器运行的Pexpect脚本。
我为思科和Adva设备开发了这个脚本的实现,所以我知道这种技术是合理的,但由于某种原因,我遇到了特定期望的问题。
我正在尝试匹配一个简单的
:
但是,以下代码不起作用:
def handleAllPrompts(self):
while self.child.after == ":":
print "waiting"
self.child.expect(":", 20)
try:
self.child.expect("\>\ *$|#\ *$|\$\ *$", 20)
except pexpect.exceptions.TIMEOUT as e:
print self.child.before
这应该在执行具有多个输出屏幕的show run
之类时自动处理“更多”提示。
Pexpect因此信息崩溃:
before (last 100 chars): 'sis downstream channel utilization"\r\nalias save "copy run start"\r\nalias scm "show cable modem"\r\n:\x1b[K'
我正在尝试检测最后一个冒号(:\x1b[K
),但是你可以看到它是冒号+术语控制代码。
但是这样做:
def handleAllPrompts(self):
while self.child.after == ":\x1b[K":
print "waiting"
self.child.expect(":\x1b[K", 20)
try:
self.child.expect("\>\ *$|#\ *$|\$\ *$", 20)
except pexpect.exceptions.TIMEOUT as e:
print self.child.before
也不起作用。
有什么想法吗?