问题标签 [expect.pm]

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 回答
144 浏览

perl - 如何在衍生过程中摆脱无限循环

让我用一组具体的例子来问这个问题。第一个代码 nlines.pl 如下:

$ nlines.pl pp 0.2 生成提示符“pp>”,当输入“6”时,以 0.2 秒的时间间隔打印 6 次“Hello world”(仅当间隔为 +ve 数字时)。非数字输入使您脱离循环,而行数为负数会导致无限循环。工作正常!

现在,考虑第二个脚本 - “expnlines.pl”,作为上述脚本的驱动程序。

如果我们将其作为“expnlines.pl 4 0.2”运行,它可以正常工作。“expnlines.pl -1 0.3”(或其他任何超时)也可以。对于 linecount 的 -ve #,第一个脚本进入无限循环,但预期超时。但是,“expnlines.pl -1 0”无法停止无限循环(在那 2 秒之后),我无法弄清楚如何让期望中断这个循环。

有什么建议么?TIA。

顺便说一句,在我的现实世界中,我无法控制“nlines.pl”的等效二进制文件。我的脚本是“expnlines.pl”,我使用期望作为二进制驱动程序,具有不同的参数。当子进程运行无限循环时,我需要一些机制来检测和停止它,我不知道如何。欣赏回复。

0 投票
1 回答
1475 浏览

perl - 如何捕获使用 Expect 发送的命令的结果

Expect使用 Perl模块时,我必须捕获发送命令的输出。

我知道在 shell 或 Tcl 中我可以puts $expect_out(buffer);用来捕获以前运行的命令。

我怎样才能在 Perl 中做同样的事情?

我在远程机器上发送以下命令:

我需要stats在某个变量中捕获输出。

0 投票
1 回答
343 浏览

perl - 通过 perl 的 expect 自动化和捕获登录提示

我正在尝试在 Perl 中自动化登录提示

SSHGetCredentials('login_prompt' => 1)用来生成登录提示,它是 perlExpect::SSH库的功能

这就是我的代码的样子,这里REST::Client->getCredentials()内部调用SSHGetCredentials('login_prompt' => 1)将调用登录提示并返回输入的用户 ID 和密码。

现在我想验证用户名或密码是否是我传递的,所以我想捕获它们并进行比较。

我怎样才能捕捉到它们?

我试过这个:

$value什么都没有,$exp->expect(1)只是打印 STDOUT 中的值。

0 投票
0 回答
753 浏览

perl - 如何使用 Expect 模块发送带有特殊字符的密码?

我对 Perl 的特殊字符有一个大问题。

我正在尝试建立 Telnet 连接。

因此,在命令“Telnet $ipAddress”之后,我必须发送凭据。

我已经这样做了:

问题是我的密码的第一个字符是 @ 字符,它是一个特殊字符。

我已经尝试过'@password',"\@password""\\@password",但登录失败。

我怎样才能让我的密码工作?

0 投票
1 回答
41 浏览

perl - 以编程方式将参数传递给交互式脚本

我们有一个交互式脚本(脚本 1),它要求一个 IP 地址并继续它的执行过程。从 script2 调用脚本 1。由于我们知道我们想要将 IP 自动传递给脚本的 IP 地址,因此不需要手动干预

我查看了期望模块。但我无法在 PRODUCTION 服务器中安装该模块。

有人可以建议一种方法来克服这个问题。

0 投票
1 回答
444 浏览

multithreading - 从 perl 线程生成 Expect

我正在编写一个脚本,该脚本需要定期(每 5 分钟)生成一个 Expect 进程来完成一些工作。下面是我拥有的生成 Expect 进程并完成一些工作的代码。脚本的主要进程一直在做一些其他的工作,例如它可能等待用户输入,因为我在一个线程中调用这个函数'spawn_expect',每5分钟调用一次,但问题是预期没有按预期工作。

但是,如果我用另一个进程替换线程,也就是说,如果我分叉并让一个进程负责生成 Expect,而另一个进程完成脚本的主要工作(例如在提示符处等待),那么 Expect 工作正常。

我的问题是是否有可能产生一个线程期望进程?我必须求助于使用流程来完成这项工作吗?谢谢 !

0 投票
1 回答
134 浏览

perl - 如何将期望脚本转换为 perl 脚本?

我以前从未使用过 perl 脚本。我已经完成了期望脚本,有没有办法将它转换为perl?

我现在正在尝试学习 perl 脚本。任何想法都会有所帮助!

非常感谢!

0 投票
0 回答
493 浏览

multithreading - SSH使用expect和线程?

您是否找到了有关如何使用带线程的期望进行 ssh 的解决方案?

我已经阅读了一个期望在线程中无法正常工作的线程,这仍然是真的吗?

0 投票
1 回答
135 浏览

perl - 使用 Expect.pm 在 perl 中处理“--More--”

我有一个带有 Mac 地址的设备的 show 命令,我正在使用Expect.pm在 perl 中执行该命令。--More--命令的输出在底部有 100 多行。我能够在第一次出现--More--. 但不是在那之后。我尝试使用 while 循环它对我不起作用。请帮我解决这个问题。

0 投票
1 回答
193 浏览

perl - 打印期望输出而不调用变量

我正在尝试理解 Expect Perl 模块。

我想从中获取值和机器$var,但即使我使用正则表达式也无法使我的代码工作。

我想从$var机器和命令提示符(如机器 1 - 7)中获取值,但我不知道为什么它会$var在终端中打印,因为我没有调用$var变量

输出