0

我正在使用 plink 并希望从 Windows 连接服务器。我创建了一个文本小部件 .l1 来查看连接过程中发生了什么。通常当我使用这个时:

catch {exec plink.exe -ssh myserver} res
.l1 insert 1.0 $res

我收到一个 .l1 文本小部件:“密码:”,这意味着 plink 有效,它正在与服务器连接并要求我输入密码。

当我使用 spawn 代替 exec 时:

catch {spawn plink.exe -ssh myserver} res
expect "password: "
.l1 insert 1.0 $res
exp_send "exit"

我收到一些随机数字,例如 1482 或 4584。为什么它不起作用?

4

1 回答 1

1

Expect 会记住它所看到的。我强烈推荐阅读“Exploring Expect”一书。

像这样的东西(未经测试)应该会有所帮助:

spawn plink.exe -ssh myserver
expect "password: "
.l1 insert 1.0 $expect_out(buffer)
exp_send "password\r"
expect "my_shell_prompt$ "
.l1 insert end $expect_out(buffer)
... etc
于 2014-02-20T22:21:49.957 回答