expect 教程中文版

expect 教程中文版

ID:15046305

大小:69.00 KB

页数:29页

时间:2018-08-01

expect 教程中文版_第1页
expect 教程中文版_第2页
expect 教程中文版_第3页
expect 教程中文版_第4页
expect 教程中文版_第5页
资源描述:

《expect 教程中文版》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Expect教程中文版有不少部分,翻译的时候不能作到“信,达”。当然了,任何时候都没有做到“雅”,希望各位谅解。[原著]   DonLibes:NationalInstituteofStandardsandTechnology    libes@cme.nist.gov[目录]    1.摘要  2.关键字  3.简介  4.Expect综述  5.callback  6.passwd和一致性检查  7.rogue和伪终端  8.ftp  9.fsck  10.多进程控制:作业控制  11.交互式使用Ex

2、pect  12.交互式Expect编程  13.非交互式程序的控制  14.Expect的速度  15.安全方面的考虑  16.Expect资源  17.参考书籍1.[摘要] 现代的Shell对程序提供了最小限度的控制(开始,停止,等等),而把交互的特性留给了用户。这意味着有些程序,你不能非交互的运行,比如说passwd。有一些程序可以非交互的运行,但在很大程度上丧失了灵活性,比如说fsck。这表明Unix的工具构造逻辑开始出现问题。Expect恰恰填补了其中的一些裂痕,解决了在Unix环境中长期存在着

3、的一些问题。 Expect使用Tcl作为语言核心。不仅如此,不管程序是交互和还是非交互的,Expect都能运用。这是一个小语言和Unix的其他工具配合起来产生强大功能的经典例子。  本部分教程并不是有关Expect的实现,而是关于Expect语言本身的使用,这主要也是通过不同的脚本描述例子来体现。其中的几个例子还例证了Expect的几个新特征。 2.[关键字]    Expect,交互,POSIX,程序化的对话,Shell,Tcl,Unix;3.[简介]   一个叫做fsck的Unix文件系统检查程序,可

4、以从Shell里面用-y或者-n选项来执行。 在手册[1]里面,-y选项的定义是象这样的。  “对于fsck的所有问题都假定一个“yes”响应;在这样使用的时候,必须特别的小心,因为它实际上允许程序无条件的继续运行,即使是遇到了一些非常严重的错误”    相比之下,-n选项就安全的多,但它实际上几乎一点用都没有。这种接口非常的糟糕,但是却有许多的程序都是这种风格。 文件传输程序ftp有一个选项可以禁止交互式的提问,以便能从一个脚本里面运行。但一旦发生了错误,它没有提供的处理措施。  Expect是一个控制

5、交互式程序的工具。他解决了fsck的问题,用非交互的方式实现了所有交互式的功能。Expect不是特别为fsck设计的,它也能进行类似ftp的出错处理。  fsck和ftp的问题向我们展示了象sh,csh和别的一些shell提供的用户接口的局限性。 Shell没有提供从一个程序读和象一个程序写的功能。这意味着shell可以运行fsck但只能以牺牲一部分fsck的灵活性做代价。有一些程序根本就不能被执行。比如说,如果没有一个用户接口交互式的提供输入,就没法运行下去。其他还有象Telnet,crypt,su,r

6、login等程序无法在shell脚本里面自动执行。还有很多其他的应用程序在设计是也是要求用户输入的。  Expect被设计成专门针和交互式程序的交互。一个Expect程序员可以写一个脚本来描述程序和用户的对话。接着Expect程序可以非交互的运行“交互式”的程序。写交互式程序的脚本和写非交互式程序的脚本一样简单。Expect还可以用于对对话的一部分进行自动化,因为程序的控制可以在键盘和脚本之间进行切换。bes[2]里面有详细的描述。简单的说,脚本是用一种解释性语言写的。(也有C和C++的Expect库可供

7、使用,但这超出了本文的范围).Expect提供了创建交互式进程和读写它们的输入和输出的命令。 Expect是由于它的一个同名的命令而命名的。  Expect语言是基于Tcl的。Tcl实际上是一个子程序库,这些子程序库可以嵌入到程序里从而提供语言服务。 最终的语言有点象一个典型的Shell语言。里面有给变量赋值的set命令,控制程序执行的if,for,continue等命令,还能进行普通的数学和字符串操作。当然了,还可以用exec来调用Unix程序。所有这些功能,Tcl都有。Tcl在参考书籍Outerhou

8、r[3][4]里有详细的描述。  Expect是在Tcl基础上创建起来的,它还提供了一些Tcl所没有的命令。spawn命令激活一个Unix程序来进行交互式的运行。 send命令向进程发送字符串。expect命令等待进程的某些字符串。 expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作。expect还能理解一些特殊情况,如超时和遇到文件尾。  expect命令和Tcl的case命令的风格很相似。都是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。