当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 创建时间:2001-04-29文章属性:转载文章来源:中国科大B
 

 

 ·我删除了solaris10    »显示摘要«
    摘要:删除了solaris10在经历了solaris的折磨后,我删除了solaris,我想solaris在x86系统下的表现是有些太差了,如果在sun的系统下,solaris应该表现肯定很好的。现在装上了reahat as4.0感觉很不错,当然我只是为了学习unix和linux,然后部署java开发环境。这样我想还是先从简单的linux开始学习。......
 ·sa299第十七章读书笔记    »显示摘要«
    摘要:configuring the custom jumpstart procedure基本内容:描述jumpstart程序实现一个基本的jumpstart服务器安装可供选择的jumpstart软件在jumpstart程序中发现并纠正错误需要在多台系统上安装相同配置的solaris可以用jumpstart安装方法来自动执行安装进程.执行这种安装方法的好处是:1,避免了一问一答的交互式安装机制2,方便系......


Expect 教程中文版
创建时间:2001-04-29文章属性:转载文章来源:中国科大bbs站

[版权声明]    copyright(c) 1999      本教程由*葫芦娃*翻译,并做了适当的修改,可以自由的用于非商业目的.  但redistribution时必须拷贝本[版权声明].      

【程序编程相关:NBU4.5 标注卷

【推荐阅读:CPU学习笔记(2)

[bug] 【扩展信息:http://www.myfaq.com

  有不少部分,翻译的时候不能作到“信,达”.当然了,任何时候都没有做到“雅”,希望各位谅解.

[原著]

 

  don libes: national institute of standards and technology

    libes@cme.nist.gov

[目录]

  

  1.摘要

  2.关键字

  3.简介

  4.expect综述

  5.callback

  6.passwd 与一致性检查

  7.rogue 与伪终端

  8.ftp

  9.fsck

  10.多进程控制:作业控制

  11.交互式使用expect

  12.交互式expect编程

  13.非交互式程序的控制

  14.expect的速度

  15.安全方面的考虑

  16.expect资源

  17.参考书籍

1.[摘要]

 现代的shell对程序提供了最小限度的控制(开始,停止,等等),而把交互的特性留给了用户.这意味着有些程序,你不能非交互的运行,比如说 passwd.有一些程序可以非交互的运行,但在很大程度上丧失了灵活性,比如说fsck.这表明unix的工具构造逻辑开始出现问题.expect恰恰填补了其中的一些裂痕,解决了在unix环境中长期存在着的一些问题.

  expect使用tcl作为语言核心.不仅如此,不管程序是交互与还是非交互的,expect都能运用.这是一个小语言与unix的其他工具配合起来产生强大功能的经典例子.

 

  本部分教程并不是有关expect的实现,而是关于expect语言本身的使用,这主要也是通过不同的脚本描述例子来体现.其中的几个例子还例证了expect的几个新特征.

 

2.[关键字]

  

  expect,交互,posix,程序化的对话,shell,tcl,unix;

3.[简介]

 

  一个叫做fsck的unix文件系统检查程序,可以从shell里面用-y或者-n选项来执行. 在手册[1]里面,-y选项的定义是象这样的.

  “对于fsck的所有问题都假定一个“yes”响应;在这样使用的时候,必须特别的小心,因为它实际上允许程序无条件的继续运行,即使是遇到了一些非常严重的错误”

  

  相比之下,-n选项就安全的多,但它实际上几乎一点用都没有.这种接口非常的糟糕,但是却有许多的程序都是这种风格. 文件传输程序ftp有一个选项可以禁止交互式的提问,以便能从一个脚本里面运行.但一旦发生了错误,它没有提供的处理措施.

  expect是一个控制交互式程序的工具.他解决了fsck的问题,用非交互的方式实现了所有交互式的功能.expect不是特别为fsck设计的,它也能进行类似ftp的出错处理.

  fsck与ftp的问题向我们展示了象sh,csh与别的一些shell提供的用户接口的局限性. shell没有提供从一个程序读与象一个程序写的功能.这意味着shell可以运行fsck但只能以牺牲一部分fsck的灵活性做代价.有一些程序根本就不能被执行.比如说,如果没有一个用户接口交互式的提供输入,就没法运行下去.其他还有象telnet,crypt,su,rlogin等程序无法在shell脚本里面自动执行.还有很多其他的应用程序在设计是也是要求用户输入的.

  expect被设计成专门针与交互式程序的交互.一个expect程序员可以写一个脚本来描述程序与用户的对话.接着expect程序可以非交互的运行“交互式”的程序.写交互式程序的脚本与写非交互式程序的脚本一样简单.expect还可以用于对对话的一部分进行自动化,因为程序的控制可以在键盘与脚本之间进行切换.

bes[2]里面有详细的描述.简单的说,脚本是用一种解释性语言写的.(也有c与c++的expect库可供使用,但这超出了本文的范围).expect提供了创建交互式进程与读写它们的输入与输出的命令. expect是由于它的一个同名的命令而命名的.

  expect语言是基于tcl的.tcl实际上是一个子程序库,这些子程序库可以嵌入到程序里从而提供语言服务. 最终的语言有点象一个典型的 shell语言.
...   下一页
 ·独个归家的心谁人知!    »显示摘要«
    摘要:独唱恋歌的心谁人知从自觉放弃了爱情开始逝去一首首歌仿似一声声讽刺唯独爱过痛过才能知 对酒当歌的心谁人知难道要我告诉我自己知逝去一首首歌仿似一声声讽刺难道这个世界无人知  这几天总习惯听这首歌,觉得很有感觉似的.独个归家的心谁人知!这不是在描述我吗?......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE