2024-05-05 13:05:13 发布
网友
我很惊讶于Expect(TCL)可以自动处理很多我平时做不到的事情。在
我想我可以通过读一本书来更深入地了解Expect,但在此之前,我想问一下,是否还有其他解决方案/语言可以实现Expect的功能?在
我读到有人把Expect与Awk和Perl相比较。在
Awk和Perl能做同样的事情吗?在
其他语言,比如Python和Ruby呢?在
Expect是事实上的自动化工具还是其他更高级的解决方案/语言?在
还有更多。在
直截了当地说,最初的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有机会发挥它的魔力。在
还有更多。在
直截了当地说,最初的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有机会发挥它的魔力。在
相关问题 更多 >
编程相关推荐