我很惊讶Expect(TCL)如何自动化我通常无法做的很多事情。
我以为我可以通过阅读一本书深入了解Expect,但在我这样做之前,我想询问是否有其他解决方案/语言可以做到Expect所做的事情?
EG。我读过人们将Expect与Awk以及Perl进行比较。
Awk和Perl可以做同样的事情吗?
Python和Ruby等其他语言怎么样?
Expect是事实上的自动化工具还是其他解决方案/语言更优越?
答案 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