【问题标题】:send spawn id exp4 not open error in expect在期望中发送 spawn id exp4 not open 错误
【发布时间】:2012-09-07 10:57:00
【问题描述】:

我的最终目标是远程登录路由器并与之交互。以下期望脚本根本没有帮助我。路由器没有任何用户 ID 或密码。是自动登录。

期待文件代码。

set iptotelnet "10.x.x.x"
spawn telnet $iptotelnet

sleep 10
expect ">" #this is because initially the prompt will be >
sleep 10
send "enable\r" # this should change the prompt from > to # 

sleep 10
expect "#"
sleep 10
interact
sleep 10
exit

但是,我收到以下错误。

发送:spawn id exp4 未打开 在执行时 发送“启用\r”。

这不仅是 telnet,我在使用任何其他命令时也会遇到同样的错误。

请帮助我。

【问题讨论】:

  • 脚本没有明显的问题(除了 cmets,它应该在单独的行中或使用 ;# 而不是 # 引入)。我猜问题出在一些配置问题上。

标签: tcl telnet expect


【解决方案1】:

这也发生在我身上。并且已经解决了。

我尝试在 Windows 上的 Cygwin 中自动远程登录服务器。

但是安装在 Windows 中的 Microsoft telnet 无法在 Cygwin shell 中运行

如果您收到以下回复,这就是您的问题类型的来源: $哪个远程登录 /cygdrive/c/WINDOWS/system32/telnet

有两种解决方案: 1. 对于 Cygwin x86,只需安装包含 telnet 命令的包“inetutil”。 2. Cygwin x86_64,目前(2013-09-09)“inetutil”还没有移植到64位,所以我使用plink.exe,它是PuTTy的一部分

【讨论】:

    【解决方案2】:

    您的脚本没有大问题,不会导致spawn 那样失败。 (您拥有的 cmets 会导致问题,但可以通过使用 ;# 而不是 # 轻松解决。)因此您的问题出在其他地方(嗯,很有可能)。

    我看到您正在尝试在 Windows 上使用 Expect 控制 telnet。唉,telnet 是一种无法以这种方式控制的特殊情况——Windows 上的 Expect 使用系统调试工具来拦截终端输出,但这对于设置了特殊系统权限的可执行文件不起作用,而 telnet 就是其中之一这是正确的程序 - 所以你需要另一种方法。最简单的方法是获取plink.exe(对于终端/自动化来说实际上是 PuTTY)并使用它(在“telnet”模式下)而不是 telnet。

    【讨论】:

    • 注意:你不能像这样自动化 PuTTY 本身;它是 GUI 子系统应用程序,因此您需要一个 GUI 自动化程序,而且它们比 Expect 复杂得多。您也无法将 Windows 在这方面的体验与 Unix 进行比较;它们以完全不同的方式处理终端(Expect/Unix 使用系统虚拟终端工具,这在 Windows 上根本不存在)。
    • 是的..我明白你所说的。那么,对我来说有不同的方法吗?因为,我必须在 Windows 上工作......(公司规则)。
    • 你能提供更多关于使用 plink 的细节吗?至少有一些链接......我用谷歌搜索但找不到任何有用的东西......请帮助我。
    【解决方案3】:

    您可能无法在send 命令行中使用# comments
    尝试相同但在发送字符串中不加注释。

    【讨论】:

    • 我添加 cmets 只是为了便于阅读。最初没有 cmets。我也试过没有 cmets.. 不工作...
    • 我认为 spawn 不能与 telnet 10.x.x.x 命令一起使用。您手动尝试了吗?
    • 是的...我从命令提示符手动尝试并且它有效。似乎 spawn 和 telnet 在 windows xp 中不起作用。有解决办法吗?
    • 嗯,您使用的是什么版本的 expect 以及从哪里获得的?
    • 我从 Cygwin 安装了 expect。预计版本为 5.45
    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2022-10-06
    • 1970-01-01
    相关资源
    最近更新 更多