TCL培训教程(全)

上传人:re****.1 文档编号:490603043 上传时间:2023-10-09 格式:DOCX 页数:61 大小:94.89KB
返回 下载 相关 举报
TCL培训教程(全)_第1页
第1页 / 共61页
TCL培训教程(全)_第2页
第2页 / 共61页
TCL培训教程(全)_第3页
第3页 / 共61页
TCL培训教程(全)_第4页
第4页 / 共61页
TCL培训教程(全)_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《TCL培训教程(全)》由会员分享,可在线阅读,更多相关《TCL培训教程(全)(61页珍藏版)》请在金锄头文库上搜索。

1、TCL培训教程(全)(内部使用)深圳市华为技术有限公司目 录1引言52语法62.1脚本、命令和单词符号62.2置换(substitution)62.2.1变量置换(variable subtitution)72.2.2命令置换(command substitution)72.2.3反斜杠置换(backslash substitution)82.2.4双引号和花括号82.3注释93变量93.1简单变量93.2数组103.3相关命令113.3.1set113.3.2unset113.3.3append和incr114表达式124.1操作数124.2运算符和优先级121.1数学函数132List14

2、2.1list命令142.2concat命令:142.3lindex命令142.4llength命令142.5linsert命令152.6lreplace命令:152.7lrange 命令:152.8lappend命令:152.9lsearch 命令:152.10lsort命令:162.11split命令:162.12join命令163控制流173.1if命令173.2循环命令:while 、for、 foreach173.2.1while命令173.2.2for命令183.2.3foreach命令183.2.4break和continue命令193.2.5switch 命令193.3eval

3、命令193.4source命令204过程(procedure)204.1过程定义和返回值204.2局部变量和全局变量204.3缺省参数和可变个数参数214.4引用:upvar225字符串操作225.1format命令235.2scan命令235.3regexp命令231.1regsub命令251.2string命令251.2.1string compare ?-nocase? ?-length int? string1 string2261.2.2string equal ?-nocase? ?-length int? string1 string2261.2.3string first st

4、ring1 string2 ?startindex?261.2.4string index string charIndex261.2.5string last string1 string2 ?startindex?261.2.6string length string261.2.7string match ?-nocase? pattern string261.2.8string range string first last271.2.9string repeat string count271.2.10string replace string first last ?newstrin

5、g?271.2.11string tolower string ?first? ?last?271.2.12string toupper string ?first? ?last?271.2.13string trim string ?chars?281.2.14string trimleft string ?chars?281.2.15string trimright string ?chars?282文件访问282.1文件名282.2基本文件输入输出命令282.3随机文件访问302.4当前工作目录302.5文件操作和获取文件信息303错误和异常343.1错误343.2从TCL脚本中产生错误

6、353.3使用catch捕获错误363.4其他异常361深入TCL381.1查询数组中的元素381.2info命令391.2.1变量信息401.1.1过程信息401.1.2命令信息411.1.3TCL的版本和库421.1.4命令的执行时间421.1.5跟踪变量421.1.6命令的重命名和删除451.1.7unknown命令451.1.8自动加载462历史记录473TCL和CC+493.1生成自己的TCLSH493.2扩展自己的命令:方法(一)503.2.1编写扩展命令对应的C/C+过程503.2.2注册命令513.2.3命令返回值和命令对应的过程的返回值523.3扩展自己的命令:方法(二)54

7、3.3.1Tcl_Obj结构543.3.2编写扩展命令对应的C/C+过程563.3.3注册命令573.4利用clientData参数和deleteProc参数573.5在C/C+应用程序中嵌入TCL604总结61TCL培训教程(全)关键词:TCL 摘 要:本文是TCL教材的第三稿,前两稿分别是TCL的使用和TCL培训教程。这一稿加入了不少内容,是北研TCL兴趣小组共同努力的结果。本文详细介绍了TCL的各个方面,特别对利用CC+语言扩展TCL命令作了详细论述。本文附有大量实例。缩略语清单: TCL Tool Command Language 一种脚本语言参考资料清单: 请在表格中罗列本文档所引用

8、的有关参考文献名称、作者、标题、编号、发布日期和出版单位等基本信息。参考资料清单名称作者编号发布日期查阅地点或渠道出版单位(若不为本公司发布的文献,请填写此列)Tcl and Tk ToolKitJohn K.Ousterhout98123595161999自己的图书Addison Wesley Publishing CommpanyTCL的使用陈旭盛自写文档TCL培训教程陈旭盛自写文档1 引言TCL(Tool Command Language)是一种解释执行的脚本语言(Scripting Language)。 它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固

9、有的核心命令集。由于TCL的解释器是用一个CC+语言的过程库实现的,因此在某种意义上我们又可以把TCL看作一个C库,这个库中有丰富的用于扩展TCL命令的CC+过程和函数,可以很容易就在CC+应用程序中嵌入TCL,而且每个应用程序都可以根据自己的需要对TCL语言进行扩展。我们可以针对某一特定应用领域对TCL语言的核心命令集进行扩展,加入适合于自己的应用领域的扩展命令,如果需要,甚至可以加入新的控制结构,TCL解释器将把扩展命令和扩展控制结构与固有命令和固有控制结构同等看待。扩展后的TCL语言将可以继承TCL 核心部分的所有功能,包括核心命令、控制结构、数据类型、对过程的支持等。根据需要,我们甚至

10、可以屏蔽掉TCL的某些固有命令和固有控制结构。通过对TCL的扩展、继承或屏蔽,用户用不着象平时定义一种计算机语言那样对词法、语法、语义、语用等各方面加以定义,就可以方便的为自己的应用领域提供一种功能完备的脚本语言。TCL良好的可扩展性使得它能很好地适应产品测试的需要,测试任务常常会由于设计和需求的改变而迅速改变,往往让测试人员疲于应付。利用TCL的可扩展性,测试人员就可以迅速继承多种新技术,并针对产品新特点迅速推出扩展TCL命令集,以用于产品的测试中,可以较容易跟上设计需求的变化。另外,因为TCL是一种比CC+ 语言有着更高抽象层次的语言,使用TCL可以在一种更高的层次上编写程序,它屏蔽掉了编

11、写CC+程序时必须涉及到的一些较为烦琐的细节,可以大大地提高开发测试例的速度。而且, 使用TCL语言写的测试例脚本,即使作了修改,也用不着重新编译就可以调用TCL解释器直接执行。可以省却不少时间。TCL 目前已成为自动测试中事实上的标准。2 语法简单的讲,TCL语言的语法实际上是一些TCL解释器怎样对TCL命令进行分析的规则的集合。2.1 脚本、命令和单词符号一个TCL脚本可以包含一个或多个命令。命令之间必须用换行符或分号隔开,下面的两个脚本都是合法的:set a 1set b 2或set a 1;set b 2TCL的每一个命令包含一个或几个单词,第一个单词代表命令名,另外的单词则是这个命令

12、的参数,单词之间必须用空格或TAB键隔开。TCL解释器对一个命令的求值过程分为两部分:分析和执行。在分析阶段,TCL 解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换(substitution); 在执行阶段,TCL 解释器会把第一个单词当作命令名,并查看这个命令是否有定义,如果有定义就激活这个命令对应的C/C+过程,并把所有的单词作为参数传递给该命令过程,让命令过程进行处理。2.2 置换(substitution)注:在下面的所有章节的例子中,为TCL的命令提示符,输入命令回车后,TCL会在接着的一行输出命令执行结果。/后面是我自己加上的说明,不是例子的一部分。TCL解释器在分析

13、命令时,把所有的命令参数都当作字符串看待,例如:%set x 10 /定义变量x,并把x的值赋为1010%set y x+100 /y的值是x+100,而不是我们期望的110x+100上例的第二个命令中,x被看作字符串x+100的一部分,如果我们想使用x的值10 ,就必须告诉TCL解释器:我们在这里期望的是变量x的值,而非字符x。怎么告诉TCL解释器呢,这就要用到TCL语言中提供的置换功能。TCL提供三种形式的置换:变量置换、命令置换和反斜杠置换。每种置换都会导致一个或多个单词本身被其他的值所代替。置换可以发生在包括命令名在内的每一个单词中,而且置换可以嵌套。2.2.1 变量置换(variab

14、le subtitution)变量置换由一个符号标记,变量置换会导致变量的值插入一个单词中。例如:%set y $x+100 /y的值是10+100,这里x被置换成它的值1010100这时,y的值还不是我们想要的值110,而是10+100,因为TCL解释器把10+100看成是一个字符串而不是表达式,y要想得到值110,还必须用命令置换,使得TCL会把10+100看成一个表达式并求值。2.2.2 命令置换(command substitution)命令置换是由括起来的TCL命令及其参数,命令置换会导致某一个命令的所有或部分单词被另一个命令的结果所代替。例如:%set y expr $x+100110y的值是110,这里当TCL解释器遇到字符时,它就会把随后的exp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号