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

时间:2010-09-19 15:11:06

标签: python perl awk tcl expect

我很惊讶Expect(TCL)如何自动化我通常无法做的很多事情。

我以为我可以通过阅读一本书深入了解Expect,但在我这样做之前,我想询问是否有其他解决方案/语言可以做到Expect所做的事情?

EG。我读过人们将Expect与Awk以及Perl进行比较。

Awk和Perl可以做同样的事情吗?

Python和Ruby等其他语言怎么样?

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

4 个答案:

答案 0 :(得分:9)

还有更多内容。

直言不讳,最初的Expect - Tcl Expect - 是最好的。它比其任何后继者更好地支持“互动”和各种pty怪癖。它的作用并不优越。

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

Perl与“...... Awk和Perl”的天真比较是没有根据的。

在摘要中,所有常见的脚本语言 - Lua,awk,sh,Tcl,Ruby,Perl,Python,...... - 大致相同。期待稍微但非常有效地将这个共同核心扩展到pty-awareness的方向(对于我们现在可以忽略的故事还有一点点)。粗略地说,如果您的自动化涉及输入隐形密码,您需要Expect。 Awk和Perl不构建此功能。

其他环境还有其他自动化工具。

答案 1 :(得分:7)

查看Expect了解Perl

答案 2 :(得分:4)

ajsie问:“你还在谈论哪些其他自动化工具?”

我会回答一个不同的问题:“我还记得哪些其他背景”?答案:除了stdio之外的任何互动环境。例如,期望不是GUI点和点击的自动化。对于Win *非控制台应用程序,Expect也不可用,即使它们看起来像是面向字符的(如此存在)。

令人兴奋的反实现:期望 用于允许通过类似术语的连接进行控制的古怪设备的自动化。如果您的柴油发动机(或更常见的是电信铁)表示它可以通过挂钩类似telnet的过程进行监控(比如通过旧式串行线路),那么您就处于Expect有机会的领域发挥其魔力。

答案 3 :(得分:2)

查看Pexpect了解Python