Tcl pronounced "tickle", is a fairly simple and
straight forward computer language similar to a
shell language. Tcl stands for Tool Command
Language.
Tk is a set of libraries that can be used by a string
oriented computer language such as Tcl to draw
X-windows "widgets" such as list boxes, menus, and
so on. Tk is most often used with Tcl, but will
also work with other languages such as perl and
scheme.
expect is an extended version of Tcl which can serve as a
"robot operator" to run certain kinds of programs,
in particular programs like Landmark's bcm2d and
bcm3d and zap.
http://hi.baidu.com/xiuxiu5484/blog/item/c8be973fd1a403e455e72317.html
http://testing.blog.51cto.com/530290/155908
http://www.cnitblog.com/houcy/archive/2008/08/23/48288.html
Expect被设计成专门完成和交互式程序的交互。一个Expect程序员可以写一个脚本来描述程序和用户的对话。接着Expect程序可以非交互的运行“交互式”的程序。
Tcl实际上是一个子程序库,这些子程序库可以嵌入到程序里从而提供语言服务。 最终的语言有点象一个典型的Shell语言。里面有给变量赋值的set命令,控制程序执行的if,for,continue等命令,还能进行普通的数学和字符串操作。当然了,还可以用exec来调用Unix程序。所有这些功能,Tcl都有。
Expect是在Tcl基础上创建起来的,它还提供了一些Tcl所没有的命令。spawn命令激活一个Unix程序来进行交互式的运行。 send命令向进程发送字符串。expect命令等待进程的某些字符串。 expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作。expect还能理解一些特殊情况,如超时和遇到文件尾。
expect的定义:
expect patlist1 action1 patlist2 action2.....
该命令一直等到当前进程的输出和以上的某一个模式相匹配,或者等 到时间超过一个特定的时间长度,或者等到遇到了文件的结束为止。
(可以看到与awk的相似,同样是模式,动作)
如果patlist是eof或者timeout,则发生文件结束或者超时时才执行相应的action.一般超时的时值是10秒,但可以用类似"set timeout 30"之类的命令把超时时值设定为30秒。
下面的一个程序段是从一个有关登录的脚本里面摘取的。abort是在脚本的别处定义的过程,而其他的action使用类似与C语言的Tcl原语。
expect "*welcome*" break
"*busy*" {print busy;continue}
"*failed*" abort
timeout abort
模式是通常的C Shell风格的正规表达式。模式必须匹配当前进程的从上一个expect或者interact开始的所有输出(所以统配符*使用的非常的普遍)。但是,一旦输出超过2000个字节,前面的字符就会被忘记,这可以通过设定match_max的值来改变。
expect可以使用单引号和双引号,也可以不用引号,为了减少错误和更好的理解,一般使用双引号来引用字符串。
字符可以使用反斜杠来单独的引用,反斜杠也被用于对语句的延续,如果不加反斜杠的话,语句到一行的结尾处就结束了。
#表示注释
获取参数 [lindex $argv 0] :表示获取第一个参数 (或者:[index $argv 1])
文件第一句:
#! /usr/bin/expect
分享到:
相关推荐
### Tcl/tk宝典之一 —— Expect讲解 #### 一、Expect介绍 Expect 是一种基于Tcl(Tool Command Language)的脚本语言扩展,主要应用于自动化脚本编写中,特别是那些需要与远程服务如SSH、FTP等进行交互的场景。...
8. **应用领域**:TCL/TK不仅用于快速开发小型GUI应用,还在网络管理、科学计算、自动化测试等领域有广泛应用,例如 Expect工具用于自动应答终端交互。 在压缩包内的文件“tcl”可能是包含这些示例代码的脚本文件,...
Tcl/Tk社区提供了丰富的扩展和库,如Tkinter(Python的GUI库,基于Tk)、Expect(用于自动化交互式程序)、BLT(扩展图形和图表功能)等,这些扩展进一步增强了Tcl/Tk的功能和适用性。 **学习资源** 这个“Tcl.And...
6. **模块和扩展**:Tcl有一个庞大的第三方模块库,如Tkinter(Python中的Tk接口)、Expect(自动化交互式程序)等,学习如何利用这些扩展增强功能。 7. **脚本编写和程序设计**:如何组织代码,编写清晰、可维护的...
2. **测试脚本**:在软件开发中,Tcl被广泛用于编写测试脚本,例如在自动化测试框架如Expect中,Tcl用于模拟用户与程序的交互。 3. **教学和研究**:由于其简洁性和易于理解,Tcl常被用于计算机科学的教学和科学...
《Tcl/Tk 8.5 Programming Cookbook》是一本针对Tcl编程语言及其图形用户界面Tk的实用指南。这本书深入浅出地介绍了如何利用Tcl/Tk进行高效且灵活的程序开发,尤其适合有一定基础的程序员提升自己的技能。Tcl是一种...
41.8 expect的tcl调试器 41.9 拼装tcl程序 第42章 c库函数概览 42.1 tcl c库函数纵览 42.2 tk c库函数概述 第43章 用c编写tk部件 43.1 部件的数据结构 43.2 部件的类命令 43.3 部件的实例命令 43.4...
标题中的“tcltk-86-64.zip”表明这是一个与TCL/TK相关的压缩文件,适用于64位(x86-64)架构的计算机系统。TCL/TK是一个开源的脚本语言和图形用户界面(GUI)工具包,由John Ousterhout在1988年开发。它主要由两...
### Tcl Tk 快速入门知识点概述 #### 一、关于本教程 本教程旨在为有一定编程或脚本语言基础的学习者提供快速上手 Tcl/Tk 的路径。虽然 Tcl/Tk 可以在多种平台上运行,包括 Win32、MacOS 以及各种 *NIX 环境,但本...
下载地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml 1.下载源码包 wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz 2.解压缩源码包 tar xfvz tcl8.4.11-src.tar.gz 3....
10. **社区支持**:Tcl/Tk拥有活跃的开发者社区,提供大量的第三方库和工具,如` Expect`用于自动化测试和过程控制,`Tcllib`是一系列预封装的模块,方便开发者快速开发应用。 总的来说,Tcl/Tk 8.5.11是一个功能...
8. **模块和扩展**:Tcl有一个庞大的第三方模块库,如` Expect`用于自动化脚本,`SQLite`用于数据库操作,`BLT`提供高级图表功能等。这些扩展使得Tcl成为一个功能强大的工具。 综上所述,"tcl.rar_tcl/tk_"压缩包中...
### Tcl与Tk Toolkit 教程概述 #### 一、引言 Tcl(Tool Command Language)和 Tk 是一套强大的脚本语言与图形用户界面工具包的组合,由 John K. Ousterhout 开发。Tcl 作为一种轻量级、易学的语言,在脚本编程、...
3. **安装扩展库**:TCL有一个丰富的生态系统,包括各种库和扩展,如Tk(用于图形用户界面),Expect(用于自动化交互式程序),和ITCL/ITK(用于对象导向编程)。安装这些扩展可以增强TCL的功能,安装过程通常涉及...
例如,Windows可能需要Tcl/Tk环境支持,因为Expect是构建在Tcl之上的。安装过程中,"expect-5.21-setup.exe"可能会处理这些依赖关系,并将必要的组件添加到系统的路径中,使得用户可以直接在命令行中运行Expect脚本...
例如,Expect扩展专门用于自动化网络设备的交互,而Extended Tcl(TclX)则增加了额外的数据类型和功能,如多维数组和正则表达式。 三、Tcl语言语法详解 1. **脚本、命令与单词**:在Tcl中,脚本是由一系列命令...