【发布时间】:2020-09-20 04:45:38
【问题描述】:
标题类似于unable to spawn ssh using TCL expect in ActiveTCL,但我想我遇到了不同的问题......
我刚刚在我的 Windows 10 PC 上安装了 32 位版本的 ActiveTcl 8.5。安装完之后,我在 tcl 命令行输入以下内容就成功安装了 Expect:
teacup install Expect
在学习如何使用 Expect 登录远程机器的教程时,我的代码在尝试使用“spawn”命令时失败了。我已将我的代码减少到名为 simple_ssh.tcl 的脚本文件中的以下最少行
#!/bin/sh
# \
exec tclsh "$0" ${1+"$@"}
package require Expect
spawn ssh eric@192.168.1.191
expect "eric@192.168.1.191's password:"
当我使用命令 tclsh simple_ssh.tcl 运行它时,我收到错误:
不支持该请求。 在执行“spawn ssh eric@192.168.1.191”时 (文件“simple_ssh.tcl”第5行)子进程异常退出
如果我只是在 tcl 提示符下键入 ssh eric@192.168.1.191,远程机器会以预期的提示符进行响应:
eric@192.168.1.191's password:
ssh 会话按预期运行。这样就可以看到ssh进程了。在我看来,'spawn' 可能没有正确集成到 Expect 中。我还能做错什么?我需要安装另一个包作为 ActiveTcl 的一部分才能使其工作吗?
【问题讨论】:
-
更直接的shebang是
#!/usr/bin/env tclsh
标签: ssh expect spawn activetcl