其他优于基于tcl的Expect的解决方案/语言?

2024-05-05 13:05:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我很惊讶于Expect(TCL)可以自动处理很多我平时做不到的事情。在

我想我可以通过读一本书来更深入地了解Expect,但在此之前,我想问一下,是否还有其他解决方案/语言可以实现Expect的功能?在

我读到有人把Expect与Awk和Perl相比较。在

Awk和Perl能做同样的事情吗?在

其他语言,比如Python和Ruby呢?在

Expect是事实上的自动化工具还是其他更高级的解决方案/语言?在


Tags: 工具功能语言解决方案事情tclperlexpect
3条回答

还有更多。在

直截了当地说,最初的Expect——Tcl Expect——是最好的。它比它的任何继承者都能更好地支持“互动”和各种各样的私人怪癖。就它所做的,它没有优越性。在

然而,与此同时,大多数Expect用户利用Expect的一小部分功能,以致于这种技术优势对他们来说是无关紧要的。在几乎所有的情况下,我建议Perl的人使用期望.pm,熟悉Python的人依赖Pexpect,等等。在

将Perl与“。。。Awk和Perl“都是没有根据的。在

抽象地说,所有常见的脚本语言——Lua、awk、sh、Tcl、Ruby、Perl、Python等等——都差不多。Expect稍微但非常有效地将这个共同的核心扩展到pty感知的方向(还有一点我们暂时可以忽略的故事)。粗略地说,如果您的自动化需要输入一个不可见的密码,那么您需要Expect。不要在Awk中构建这个功能。在

还有其他用于其他上下文的自动化工具。在

查看Perl的Expect

ajsie问,“你在说其他哪些自动化工具?”在

我将回答一个不同的问题:“我还想知道其他哪些情况?”?答案是:除了stdio之外的任何交互环境。例如,Expect不是用于GUI点和单击的自动化。Expect也不适用于Win*非控制台应用程序,即使它们看起来像是面向字符的(例如exist)。在

一个令人兴奋的计数器实现:Expect,用于古怪设备的自动化,允许通过类似于连接的术语进行控制。如果你的柴油机(或者更典型的是电信铁)说它可以通过连接一个类似telnet的进程(比如说通过一个老式的串行线路)来监控它,那么你所处的领域中,Expect有机会发挥它的魔力。在

相关问题 更多 >