问题标签 [expectit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
452 浏览

java - ExpectIt:执行 sudo -i 时遇到问题

我正在创建一个 web shell 客户端并成功创建了一个简单的终端。

在此处输入图像描述

我可以执行基本命令,但我需要执行sudo -i并传递密码。

在此处输入图像描述

发送“sudo -i”命令后,我“期待”新用户(以 root 身份)提示,但“期待”永远等待。我可以看到提示符合预期。

在此处输入图像描述

此代码仅适用于“sudo”操作并且工作正常。常用命令以分开的方式进行。

常用命令(运行(字符串命令)方法):仅当我执行 SUDO 时才会在 expect.expect() 处阻塞(如果我在 sudo 之前尝试此操作,一切正常)...

错误(期待 sudo 提示):

0 投票
1 回答
821 浏览

java - ExpectIt:抑制控制台回声

参考:ExpectIt:执行 sudo -i 时遇到问题

如何避免将 Expectit 的所有输出回显到我的 java 控制台?

这就是我启动 SSH 的方式:

现在从 Expect 获取的所有结果都将回显到控制台。我可以使用“结果”字符串,但它也可以发送到 tomcat 控制台(我确定我不会将它发送到)。

我在 Tomcat 容器(Web 环境)中运行。

在此处输入图像描述

0 投票
1 回答
1162 浏览

java - Java Jsch和expect:通过SSH控制交互程序

我正在尝试开发一个用于与某些程序交互的界面。我有一台 Windows 计算机,它将保存界面,还有一个 Raspberry Pi,它将启动程序。

我必须通过 SSH 使用它们,然后与它们交互:

  • 从一些文本字段中,我获取程序的参数,然后启动它,连接到 SSH 会话。程序停留在等待状态“输入消息:”。
  • 然后用户必须能够在计算机的另一个文本字段中输入消息,以便在程序上使用该消息。这是问题所在。

这是用于 2 个覆盆子之间的无线通信!

事实上,我通过任何 Expect 库(expectJ、expect4J、expectIt)启动程序都没有困难,但之后我总是无法输入消息。

架构是:

return "" 应该是程序结束时的确认。但是 send() 总是失败并作为 linux 命令行输入数据......!所以,我正在寻找一个解决方案,比如期望实例的“子期望”......就像这样:

有人有想法吗?

谢谢 !

0 投票
1 回答
349 浏览

java - 使用 Java 和 expectit 交互地进入启用模式

我正在对一些网络设备进行一些维护,并且一直在使用 Expectit 浏览菜单。但是,我只有在设备提供我期望的提示时才成功。例如,当我登录时,有些设备已经处于启用模式,但有些不是。

我想做相当于:

但我知道这是不对的,而且它不起作用。对实现对某个提示的反应和对其他提示的另一种反应的一些帮助将不胜感激。谢谢!

0 投票
1 回答
632 浏览

java - 如何获取 ExpectIt 的 Java 流来驱动 Telnet

如何让 telnet 的 Java 流与ExpectIt一起使用? 在 Linux 上使用实际的 Telnet 客户端,而不是使用 Java 库,例如下面的 Apache Telnet。

这是在期望手册页的上下文中:

Expect 是一个根据脚本与其他交互式程序“对话”的程序。

与之前提出以下评论的模糊、过于宽泛的问题相比,范围更窄的后续问题:

与所有其他 Java 库一样,该库使用标准 Java 流,这些流可以来自 Telnet 客户端、套接字连接或任何其他流源。这是一个 telnet 示例:github.com/Alexey1Gavrilov/ExpectIt/blob/master/expectit-core/… – Alexey Gavrilov

这是示例代码

另见: https ://stackoverflow.com/a/4532395/262852

0 投票
1 回答
259 浏览

java - 错误消息java.io.EOFException:输入在期望生成器中关闭

我正在尝试使用 java 代码连接与 SSH 的交互式连接。我使用了 jsch 并期望生成器。但这对我来说是“错误消息java.io.EOFException:输入已关闭”在expectbuilder中。但是我通过腻子连接的同样的东西它工作正常。谁能帮助我哪里出错了?这是我的代码

0 投票
1 回答
729 浏览

java - Expectit 交互问题需要为多个条件提供expect

Java新手问题,

我正在尝试将我的一些脚本从基于 Perl 的脚本转移到 Java 中,我很幸运可以在这里的示例中找到答案,但是这个让我很难过。我尝试使用 expect 模块将类似的行为复制到 Perl 脚本,但没有成功。

如果从未到达提示行,则上述超时 15 秒后。在尝试通过调用子例程登录时,它还可以看到和响应多个条件。

我认为根据我读到的内容,我需要使用类似于以下示例的交互,但我不完全确定 lambda 在这里做了什么。有人可以提供更详细的细节吗?

我怀疑我需要一个在交互循环中响应提示的示例,并且可能将整个交互包装在某种类型的计时器中以提供默认操作,如果没有任何结果导致登录提示。

我看过

但不认为它会满足我的需求,因为我看不到在继续寻找其他人的同时回应比赛的方法。

0 投票
1 回答
593 浏览

java - 如何在 ExpectIt API 中发送转义键 (ctrl+shift+6)

我是 ExpectIt API 的新手。我可以执行命令并得到响应,但我不能通过给出转义键(ctrl+shift+6)来停止运行命令。

如何通过 ExpectIt API 向终端发送转义键以停止运行命令?

例子

0 投票
1 回答
828 浏览

java - Expectit 没有找到我期望的字符串

我正在尝试将 expectit 库与 sshj 一起使用,如下所示:

我正在执行的命令是“sleep 5; rm -i test.txt”,我得到以下输出:

有人会认为一切都应该正常工作,因为 LoggingAppendableAdapter 以及内部日志记录报告字符串“rm:删除常规空文件'test'?”。

关于我可能做错的任何建议?

0 投票
1 回答
33 浏览

java - 如何在 telnet 会话期间迭代队列?

在将Tcl脚本改编为 Java 并使用expectit实现 Java 的 API 后,expect我试图整理以下用法:

显然,从三个“部分”中queue删除了城市。

对于此示例,queue只有三个城市。

但是如果有 99 个呢?