【问题标题】:Expect - Send command not prompt期望 - 发送命令不提示
【发布时间】:2014-03-17 10:15:24
【问题描述】:

我正在尝试构建一个小的期望脚本来重新启动我的 Cisco VCS 设备。但是,一旦登录设备,它就没有任何提示字符,所以我不确定如何初始化发送请求

示例提示:

到目前为止我尝试过

expect "OK/r"
send "command"

expect "OK/r/r"
send "command"

尝试过超时,但不确定它是如何工作的。

我还尝试了 autoexpect 工具,它在我尝试包含的提示符处显示了一个奇怪的字符 [?1034h"

任何帮助将不胜感激

【问题讨论】:

  • [?1034h" 几乎可以肯定是某种 ANSI 转义序列。他们可以变得非常深奥!

标签: tcl expect cisco


【解决方案1】:

我认为您应该可以期待 OK 加上换行符或回车符中的一个或两个。但是你需要反斜杠,而不是正斜杠。我会尝试“OK\r”或“OK\r\n”。

您需要执行以下操作:在脚本顶部附近的某处包含 expect_internal 1,然后再次运行它。 Expect 会为您提供大量关于它是什么以及它不匹配的信息。这应该向您展示它收到了什么,并且您将能够相应地制作您的期望声明。

如果您不确定,请编辑您的问题以包含调试输出,我会尽力提供帮助。

【讨论】:

  • 谢谢,我的期望版本需要 exp_internal 1。反斜杠只是我的记忆。看起来我的设备正在发送命令,但在从设备获得反馈之前退出。感谢你的协助。 spawn ssh 10.0.20.11 -l admin -o "StrictHostKeyChecking no" 期望 "Password:" 发送 "password\r" 期望 "OK\r \r" 发送 "xcommand Boot\r" 期望 "OK"
  • exp_internal 1 始终是正确的语法。那是我的错……不知道我在写答案时在想什么!我很高兴它帮助您检测到发生了什么。如果您发现回复有用,请不要忘记标记或支持答案! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 2021-02-07
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多