问题标签 [expect]

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

perl - Perl 的 Expect 有 autoexpect 吗?

我想Expect自动生成 Perl 代码,Perl 是否autoexpect存在类似的东西Expect

0 投票
5 回答
1120 浏览

testing - 是否有相当于 Don Libes 的 *expect* 工具来编写与网页交互的脚本?

在交互式控制台应用程序的糟糕时代,Don Libes 创建了一个名为Expect的工具,它使您能够编写与这些应用程序交互的 Tcl 脚本,就像用户一样。Expect 有两个巨大的好处:

  • 可以编写交互脚本,否则必须手动重复繁琐的操作。一个典型的例子是拨号上网地狱(从 PPP 之前的日子开始)。

  • 作为回归套件的一部分,可以编写脚本以编程方式测试自己的交互式应用程序。

如今,大多数交互式应用程序都在 Web 上,而不是在控制台上。因此我的问题是:是否有任何工具能够以编程方式与网页和 Web 表单交互,就像 Expect 提供以编程方式与控制台应用程序交互的能力一样?

(我所知道的最接近的是Chickenfoot。)

0 投票
4 回答
2366 浏览

svn - 使用expect登录SVN

我正在尝试使用自动脚本,该脚本将登录到 SVN,更新我的源,用这些创建一个 tarball 并将它们 scp 到远程主机。

这里的问题是,每次登录 SVN(即使是结帐或更新),我们都需要输入密码。密码输入的自动化,我能找到的唯一方法,就是使用 expect 来解决这个问题。

是否有任何脚本可以处理 SVN 和 scp 来检测并将密码提供给 SVN,然后提供给 SCP?

我正在使用以下内容:

我从命令行传递密码和 up 命令,但如果有人可以访问历史记录,就会存在安全威胁。下面提到的答案不满足我的先决条件,我现在也无法进行出口[其他一些安全问题:-(]

0 投票
3 回答
44680 浏览

passwords - 如何使期望脚本提示输入密码?

我有一个通过 ssh 连接到几个路由器的期望脚本。所有这些路由器都有相同的密码(我知道,这是错误的),并且脚本需要知道该密码才能连接到路由器。目前,密码作为命令行参数传递给我的脚本,但这意味着在我的 .bash_history 文件以及正在运行的进程中都有该密码的痕迹。因此,如果可能的话,我希望提示用户输入密码。

你知道是否可以用expect提示用户输入密码?

谢谢你。

编辑:如果我连接到服务器而不是路由器,我可能会使用 ssh 密钥而不是密码。但是我使用的路由器只支持密码。

0 投票
3 回答
7336 浏览

tcl - 期待补充

我最近一直在期待,我一生都无法弄清楚如何对我传入的变量执行简单的加法。有人知道怎么做吗?另外,是否有不错的 Expect 在线参考资料?我试过用谷歌搜索,结果非常有限。

0 投票
4 回答
22359 浏览

latex - 不要让我在出现错误时手动中止 LaTeX 编译

正如这里所建议的,这latexmk是一种在源代码更改时不断编译文档的便捷方法。但是,当您处理文档时,通常会遇到错误,然后latex会惊慌失措并等待用户输入,然后再继续。这会变得非常烦人,尤其是最近当我破解了一些东西以latex直接从etherpad文档编译时,它会在您键入时不断保存。

如果无法编译,是否有设置latexlatexmk使其只是中止并显示错误消息?或者,如果有必要,我将如何设置某种 Expect 脚本来自动消除 LaTeX 的投诉?

(我曾认为pdflatex's 选项-halt-on-error可以解决问题,但显然不是。)

额外的问题:Mac OSX 上的 Skim 是一个不错的 pdf 查看器,它会在 pdf 更改时自动刷新(与预览不同),除了每当出现乳胶错误时,它会让您重新确认您想要自动刷新。Texniscope 没有这个问题,但由于其他原因我不得不放弃 Texniscope 。有没有办法让 Skim 总是自动刷新,或者是否有其他查看器可以做到这一点?


latexmk添加:基于此问题的答案的迷你教程:

  1. latexmk到这里: http : //www.phys.psu.edu/~collins/software/latexmk-jcc/

  2. 将以下内容添加到您的~/.latexmkrc文件中:

    (对于带有脱脂的 OS X)

    /li>
  3. 在编辑源文件时foo.tex,在终端中运行以下命令:

    /li>
  4. 使用Skim或其他实时 pdf 查看器查看 foo.pdf。对于 Skim,只需查看 Skim 首选项中的“同步”选项卡并为您的编辑器进行设置。

瞧!现在点击保存foo.tex将导致foo.pdf刷新而不接触任何东西。

0 投票
4 回答
1608 浏览

perl - rsh 与 Perl 的 Expect.pm 相比有什么优势?

我有一个 Perl Expect.pm脚本,它可以在多个远程 unix 主机上执行一些中等复杂的工作,例如打包应用程序、部署应用程序、检查日志等。

我的前任曾使用 rsh 编写过类似的脚本。

两者之间有更好的方法吗?还是我应该使用不同的东西?

我猜有人会提出SSH;它基本上是 rsh 的替代品,对吧?不幸的是,但是 SSH 现在不是我的选择。

我应该补充的另一件事是,登录后我需要能够对特定用户进行 SUDO 以在远程主机上执行大部分操作。

0 投票
2 回答
4002 浏览

tcl - 为什么此“预期”代码中的字符串匹配失败?

为了使用安捷伦基站模拟器,我创建了以下程序:

==================================================== ====== 输出:

字符串 1

>

oa;05:SYST:APPL? 字符串 2 发送 bss_str: en;05 "CDMA 2000 Lab App T"

无法读取“expect_out(buffer)”:执行“set receive_buffer $expect_out(buffer)”时没有这样的变量(过程“get_bss_parameter_value”第 20 行)

==================================================== ====== 如果在上面的代码中“. ”被“ ”替换,这是输出:

字符串 1

>

oa;05:SYST:APPL? 字符串 2 发送 bss_str: en;05 receive_buffer START:

oa;05:SYST:APPL?

END 当前申请是

oa;05:SYST:APPL?

问题:
1) 我无法在 expect_out(buffer) 变量中获得值“CDMA 2000 Lab App T”,该变量应该匹配(由于.*)安捷伦设备的输出。代码有问题吗?
2) 在这两种情况下,命令“en;05”已发送但未显示在标准输出上。虽然我们可以在第一种情况下看到预期的输出。

0 投票
1 回答
635 浏览

python - Python Tkinter Tk/Tcl 使用问题

我正在使用 Python Tkinter 模块中的 Tcl,如下所示

可以看到python选择了Tcl 8.3版本。

但我的系统中也有 tcl8.4。现在,我如何让 python 在 Tkinter 模块中选择 tcl8.4。

Tcl8.3 没有 Expect 包,所以我不能在 Python Tcl/Tk 中使用 Expect 包。

谢谢

0 投票
2 回答
3919 浏览

passwords - 多次输入密码

我正在运行一个应用程序,它提示输入用户密码大约十几次 :-( 我尝试使用 expect 来规避这个问题,并让它在自动模式下运行,但我无法克服多次的问题密码,这不是完全静态的。有时它会询问 4-5 次,有时会询问 9-10 次左右。

有没有比我在下面给出的更好的解决方案:

通过上述解决方案,我只能捕获两次密码,然后在其余时间手动开始输入,密码是否可能出现循环?