gpt4 book ai didi

ubuntu - Expect 无法识别 $expect_out(buffer) 或 $expect_out(0,string)

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:22 25 4
gpt4 key购买 nike

我有带有 expect5.45 的 Ubuntu 9.10(并且由于测试无法在不久的将来更改它)。Expect 正在运行,但我有(至少)两个问题。首先是 expect 似乎不匹配字符串“password:”。在我的机器上,手动交互如下所示:

root@Monkey2:~# rlogin $remoteAddress -l root
root@nn.nn.nnn.nnn's password:
Linux systest-desktop 2.6.31-22-generic #70-Ubuntu SMP Wed Dec 1 23:51:13 UTC 2010 i686

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

72 packages can be updated.
70 updates are security updates.

Last login: Mon Jun 20 13:40:22 2011 from monkey2.local
root@systest-desktop:~#

脚本内容如下:

#!/usr/local/bin/expect -f

## Connect to a neighboring linux box.
spawn ssh nn.nn.nnn.nnn -l root

expect "password:\n"

send "mypassword\n"

send "$expect_out(0,string)"

脚本获取并显示请求密码的行,但超时。我试过使用“密码:”、“密码:”、“密码:\r”和密码:*”,但似乎都不匹配。


第二个问题是无法识别 expect_out 变量,当我运行脚本(名称为“this”且只有 11 行!)时出现以下错误:

can't read "expect_out(0,string)": no such variable while executing "send "$expect_out(0,string)"" (file "this" line 18)

最佳答案

调试 expect 程序时要做的第一件事是在顶部附近添加这一行:

exp_internal 1

这会打开(详细的)调试输出,显示 expect 从生成的程序中看到的内容,以及它如何匹配您的 expect 模式。

通常,一个人会做这样的事情:

expect -re {password: $}
send -- "the_password\r"

您需要发送 \r(回车符)而不是 \n

关于ubuntu - Expect 无法识别 $expect_out(buffer) 或 $expect_out(0,string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com