书签 分享 收藏 举报 版权申诉 / 32
上传文档赚钱

类型TCL脚本语言培训课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4821451
  • 上传时间:2023-01-14
  • 格式:PPT
  • 页数:32
  • 大小:341.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《TCL脚本语言培训课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    TCL 脚本语言 培训 课件
    资源描述:

    1、1、TCL脚本语言介绍2、TCL的语法3、TCL的变量4、TCL的表达式5、TCL常用命令6、TCL的控制7、TCL的过程8、TCL的字符串操作9、TCL的list10.学习TCL的一些建议和方法针对TCl脚本语言的新手2小时田显兰使没有接触过TCL脚本语言的同事对TCL脚本语言的基础概念和基础知识有一定的了解。可以使用TCL脚本语言进行简单的编程。培训目的培训目的培训对象培训对象培训讲师培训讲师学习重点学习重点培训课时培训课时1、TCL脚本语言介绍TCL脚本语言培训 TCL(Tool Command Language)是一种解释执行的脚本语言 提供通用的编程能力:支持变量、过程和控制结构,经

    2、常被用于快速原型开发,脚本编程,GUI和测试等方面 TCL拥有一个功能强大的固有的核心命令集,同时支持根据需要对TCL语言进行扩展 解释器同等对待固有命令集和扩展命令集 TCL的优点:语法简单,解释执行,可扩展,跨平台2、TCL的语法简单的讲:TCL语言的语法就是一些语言的语法就是一些TCL解释器怎样对解释器怎样对TCL命令进行分析的规则的集合。命令进行分析的规则的集合。TCL命令的基本语法为:command arg1 arg2 arg3 TCL脚本语言培训2、TCL的语法2-1、脚本、命令和单词符号一个TCL脚本可以包含一个或多个命令。命令之间必须用换行符或分号隔开。在所有TCL脚本中,系统

    3、内部的命令名是小写格式 Example:set a 100 set b 101 set c 102;set d 103TCL的每一个命令包含一个或几个单词,第一个单词代表命令名,另外的单词则是这个命令的参数,单词之间必须用空格或TAB键隔开。命令之间是可以嵌套的Example:set a 100 set b expr$a+1TCL脚本语言培训2-2、置换的引入2、TCL的语法TCL解释器对一个命令的求值过程分为两部分:分析和执行。在分析阶段,TCL 解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换(substitution);在执行阶段,TCL 解释器会把第一个单词当作命令名,并查

    4、看这个命令是否有定义,如果有定义就激活这个命令对应的C/C+过程,并把所有的单词作为参数传递给该命令过程,让命令过程进行处理。Example:set log“test”set currentfilename“test.tcl”LOG:AppErr$log expr$namespace current:currentfilename“error”置换可以发生在包含命令名在内的每一个单词中,而且置换可以嵌套Example:set a 1 set b$a 2TCL提供三种形式的置换:变量置换变量置换、命令置换命令置换和反斜杠置换反斜杠置换。TCL脚本语言培训2-3、三种置换类型2、TCL的语法变量置

    5、换由一个$符号标识,变量置换会导致变量的值插入一个单词中。TCL解释器在分析一个变量置换时,只把从$往后直到第一个不是字符,数字或下划线的字符之间的单词符号作为被置换的变量的名字 Example:set a“hello”;set a_1“hello”;set a-1“hello”set b “$a world!”;set c“$a_1 world!”;set d“$a-1 world!”命令置换是由 括起来的TCL命令及其参数。命令置换会导致某一个命令的所有或部分单词被另一个命令的结果所代替。中必须是一个合法的TCL脚步,长度不限。中脚本的值为最后一个命令的返回值Example:set b e

    6、xpr 100*10反斜杠替换相当于C语言中反斜杠的作用,主要用于在单词符号中插入诸如换行符、空格、$等被TCL解释器当作特殊符号对待的字符 Example:set a a set b$100TCL脚本语言培训2-4、双引号和花括号2、TCL的语法除了使用反斜杠外,TCL提供另外两种方法来使得解释器把分隔符和置换符等特殊字符当作普通字符,而不作特殊处理,这就要使用双引号(“”)和花括号()。TCL解释器对双引号中的各种分隔符将不作处理,但是对换行符 及$和两种置换符会照常处理。Example:set a 1;set b 2 puts“c=expr$a+$b”而在花括号中,所有特殊字符都将成为普

    7、通字符,失去其特殊意义,TCL解释器不会对其作特殊处理。Example:set a 1;set b 2 puts c=expr$a+$bTCL脚本语言培训2-5、注释2、TCL的语法TCL中的注释符是,和直到所在行结尾的所有字符都被TCL看作注释,TCL解释器对注释将不作任何处理。不过,要注意的是,必须出现在TCL解释器期望命令的第一个字符出现的地方,才被当作注释。Example:#This is a comment set a 100#Not a comment set b 100;#This is a commentTCL脚本语言培训3、变量TCL脚本语言培训TCL支持两种类型的变量:简单

    8、变量和数组。简单变量包含两个部分:名字和值。名字和值都可以是任意字符串。例如一个名为“1323 7&*:hdgg”的变量在TCL中都是合法的。不过为了更好的使用置换(substitution),变量名最好按CC+语言中标识符的命名规则命名。TCL解释器在分析一个变量置换时,只把从$符号往后直到第一个不是字母、数字或下划线的字符之间的单词符号作为要被置换的变量的名字。数组是一些元素的集合。TCL的数组和普通计算机语言中的数组有很大的区别。在TCL中,不能单独声明一个数组,数组只能和数组元素一起声明。数组中,数组元素的名字包含两部分:数组名和数组中元素的名字,TCL中数组元素的名字(下标可以为任何

    9、字符串 Example:set day(monday)1 set day(tuesday)2 TCL不能支持复杂的数据类型不能支持复杂的数据类型 4、表达式TCL脚本语言培训TCL中的表达式类似于ANSI C的表达式。表达式由操作数和操作符构成。TCL表达式的操作数通常是整数或实数。整数一般是十进制的,但如果整数的第一个字符是0(zero),那么TCL将把这个整数看作八进制的,如果前两个字符是0 x则这个整数被看作是十六进制的。TCL的实数的写法与ANSI C中完全一样。TCL中用到的运算符,它们的语法形式和用法跟ANSI C中很相似。需要注意的一点是,数学函数并不是命令,只在表达式中出现才有

    10、意义。expr 命令:expr arg?arg.?expr可以有一个或多个参数,它把所有的参数组合到一起,作为一个表达式,然后求值 Example:expr 12*3 5-1、set、puts、unset5、TCL的常用命令TCL脚本语言培训 set命令用于定义变量或读取变量的值命令格式:set varName?value?Example:set test 100 set test puts命令用于写指定内容到指定通道命令格式:puts?-nonewline?channelId?stringExample:puts“hello world!”puts nonewline“hello,Shang

    11、Hai!“unset命令用于删除一个变量命令格式:unset?-nocomplain?-?name name name.?Example:unset test5-2、append、incr5、TCL的常用命令TCL脚本语言培训 append命令用于把文本加到一个变量的后面 命令格式:append varName?value value value.?Example:append test“hello”append a$b vs set a$a$b incr命令用于增加变量的值命令格式:incr varName?increment?Example:incr test 2 incr test in

    12、cr test-16-1、if6、TCL的控制TCL脚本语言培训命令格式:if expr1?then?body1 elseif expr2?then?body2 elseif.?else?bodyN?Example:if$vbl=1 puts vbl is one if$vbl=1 puts vbl is one else puts vbl is not one if$vbl=1 puts vbl is one elseif$vbl=2 puts vbl is two else puts vbl is not one or two if$vbl=1|$vbl=2|$vbl=3 then put

    13、s vbl is one,two or three 注意:if 和 之间一定要有空格,body的一定要与if同行6-2、for6、TCL的控制TCL脚本语言培训命令格式:for start test next bodyExample:for set x 0$x10 incr x puts x is$x“for set x 0$x10 incr x puts x is$x 注意:test必须用花括号括起来,推迟置换。6-3、while6、TCL的控制TCL脚本语言培训命令格式:while test bodyExample:set x 0 while$x10 puts x is$x incr x

    14、注意:test必须用花括号括起来,推迟置换。6-4、foreach6、TCL的控制TCL脚本语言培训命令格式:foreach varname list bodyforeach varlist1 list1?varlist2 list2.?bodyExample:set values 1 3 5 7 2 4 6 8 foreach x$values puts$x set x foreach i j a b c d e f lappend x$j$i foreach i a b c j d e f g lappend x$i$j 6-5、switch6、TCL的控制TCL脚本语言培训命令格式:sw

    15、itch?options?string pattern body?pattern body.?switch?options?string pattern body?pattern body.?Example:switch xyz a-b expr 1 c expr 2 default expr 3 7、TCL的过程TCL脚本语言培训TCL支持过程的定义和调用,在TCL中,过程可以看作是用TCL脚本实现的命令,效果与TCL的固有命令相似。我们可以在任何时候使用proc命令定义自己的过程,TCL中的过程类似于C中的函数。过程的返回值是过程体中最后执行的那条命令的返回值 proc命令用于创建一个TC

    16、L过程命令格式:proc name args bodyExample:proc printArguments args foreach arg$args puts$arg proc mult varName multiplier 2 upvar 1$varName var set var expr$var*$multiplier 7-1、过程的定义7、TCL的过程TCL脚本语言培训 TCL支持三种参数类型:无参数、缺省参数、可变参数:无参数、缺省参数、可变参数Example:proc add expr 2+3 proc add val1 val2 2 val3 3 expr$val1+$val

    17、2+$val3 proc add val1 args set sum$val1 foreach i$args incr sum$i return$sum 7-2、过程的参数7、TCL的过程TCL脚本语言培训对于在过程中定义的变量,因为它们只能在过程中被访问,并且当过程退出时会被自动删除,所以称为局部变量;在所有过程之外定义的变量我们称之为全局变量。TCL中,局部变量和全局变量可以同名,两者的作用域的交集为空局部变量和全局变量可以同名,两者的作用域的交集为空:局部变量的作用域是它所在的过程的内部;全局变量的作用域则不包括所有过程的内部。这一点和C语言有很大的不同.如果我们想在过程内部引用一个全局

    18、变量的值,可以使用global命令 Example:set a 100 proc sample x global a incr a return expr$a+$x 7-3、局部变量与全局变量7、TCL的过程TCL脚本语言培训upvar命令用于用户在过程中对全局变量或其他过程中的局部变量进行访问命令格式:upvar?level?otherVar myVar?otherVar myVar.?upvar命令的第一个参数otherVar是我们希望以引用方式访问的参数的名字,第二个参数myVar 是这个过程中的局部变量的名字,一旦使用了upvar 命令把otherVar 和myVar 绑定,那么在过程

    19、中对局部变量myVar 的读写就相当于对这个过程的调用者中otherVar 所代表的局部变量的读写。level参数表示:调用upvar命令的过程相对于我们希望引用的变量myVar在调用栈中相对位置 Example:proc temp arg upvar$arg b set b expr$b+2 upvar 2 other x ;#访问当前过程的调用者的调用者中的otherupvar#0 other x ;#访问全局的变量other7-4、引用upvar8、TCL的字符串操作(一)TCL脚本语言培训 string命令具有强大的操作字符串的功能,其中的option选项多达20个string com

    20、pare?-nocase?-length int?string1 string2 把字符串string1和string2进行比较,返回值为-1、0或1,分别对应string1小于、等于或大于string2。如果有-length 参数,那么只比较前 int 个字符,如果 int为负数,那么这个参数被忽略。如果有-nocase参数,那么比较时不区分大小写。string equal?-nocase?-length int?string1 string2 把字符串string1和string2进行比较,如果两者相同,返回值为1,否则返回0。其他参数与string compare同。string fir

    21、st string1 string2?startindex?在string2 中从头查找与string1匹配的字符序列,如果找到,那么就返回匹配的第一个字母所在的位置(0-based)。如果没有找到,那么返回-1。如果给出了startindex变量,那么将从startindex处开始查找。8、TCL的字符串操作(二)TCL脚本语言培训 string index string charIndex 返回string 中第charIndex个字符(0-based)。charIndex可以是下面的值:整数n:字符串中第n个字符(0-based)end:最后一个字符 end整数n:倒数第n个字符。str

    22、ing index abcd end-1 返回字符c 如果charIndex小于0,或者大于字符串string的长度,那么返回空。string last string1 string2?startindex?参照string first.唯一的区别是从后往前查找 string length string 返回字符串string的长度.string match?-nocase?pattern string 如果pattern 匹配string,那么返回1,否则返回0.如果有-nocase参数,那么就不区分大小写.8、TCL的字符串操作(三)TCL脚本语言培训string range string

    23、 first last返回字符串string中从第first个到第last个字符的子字符串(0-based)。如果first0,那么first被看作0,如果last大于或等于字符串的长度,那么last被看作end,如果first比last大,那么返回空。string repeat string count返回值为:重复了string字符串count次的字符串string replace string first last?newstring?返回值为:从字符串string 中删除了第first到第last个字符(0-based)的字符串,如果给出了newstring变量,那么就用newstri

    24、ng替换从第first到第last个字符。如果first0,那么first被看作0,如果last大于或等于字符串的长度,那么last被看作end,如果first比last大或者大于字符串string的长度或者last小于0,那么原封不动的返回string string tolower string?first?last?返回值为:把字符串string转换成小写后的字符串,如果给出了first和last变量,就只转换first和last之间的字符。9、TCL的list(一)TCL脚本语言培训list这个概念在TCL中是用来表示集合的。TCL中list是由一堆元素组成的有序集合,list可以嵌套定

    25、义,list每个元素可以是任意字符串,也可以是list。list是TCL中比较重要的一种数据结构,对于编写复杂的脚本有很大的帮助,TCL提供了很多基本命令对list进行操作 list命令 用于创建一个list命令格式:list?value value.?concat命令把多个list合成一个list,每个list变成新list的一个元素命令格式:concat list?list.?lindex命令返回list的第index个(0-based)元素 命令格式:lindex list index llength命令返回list的元素个数命令格式:llength list 9、TCL的list(二)

    26、TCL脚本语言培训linsert命令返回一个新串,新串是把所有的value参数值插入list的第index个(0-based)元素之前得到命令格式:linsert list index value?value.?lreplace命令返回一个新串,新串是把list的第first(0-based)到第last 个(0-based)元素用所有的value参数替换得到的。如果没有value参数,就表示删除第first到第last个元素。命令格式:lreplace list first last?value value.?lrange 命令返回list的第first(0-based)到第last(0-b

    27、ased)元素组成的串,如果last的值是end。就是从第first个直到串的最后 命令格式:lrange list first last lappend命令把每个value的值作为一个元素附加到变量varname后面,并返回变量的新值,如果varname不存在,就生成这个变量 命令格式:lappend varname value?value.?9、TCL的list(三)TCL脚本语言培训lsearch 命令返回list中第一个匹配模式pattern的元素的索引,如果找不到匹配就返回-1命令格式:lsearch?-exact?-glob?-regexp?list pattern-exact、-

    28、glob、-regexp是三种模式匹配的技术。-exact表示精确匹配;-glob的匹配方式和string match命令的匹配方式相同;-regexp表示正规表达式匹配,缺省时使用-glob匹配 lsort命令返回把list排序后的串 命令格式:lsort?options?list options可以是如下值:-ascii 按ASCII字符的顺序排序比较.这是缺省情况。-dictionary 按字典排序,与-ascii不同的地方是:(1)不考虑大小写(2)如果元素中有数字的话,数字被当作整数来排序.因此:bigBoy排在bigbang和bigboy之间,x10y 排在x9y和x11y之间.-

    29、integer 把list的元素转换成整数,按整数排序.-real 把list的元素转换成浮点数,按浮点数排序.-increasing 升序(按ASCII字符比较)-decreasing 降序(按ASCII字符比较)-command command TCL自动利用command 命令把每两个元素一一比较,然后给出排序结果。9、TCL的list(四)TCL脚本语言培训 split命令把字符串string按分隔符splitChars分成一个个单词,返回由这些单词组成的串。如果splitChars 是一个空字符,string被按字符分开。如果splitChars没有给出,以空格为分隔符命令格式:split string?splitChars?join命令把list的所有元素合并到一个字符串中,中间以joinString分开。缺省的joinString是空格 命令格式:join list?joinString?Join命令式split命令的逆。10、学习TCL的一些建议和方法TCL脚本语言培训 Help帮助文档帮助文档 2.命令帮助提示命令帮助提示 3.教程文档教程文档 4.实地操作实地操作谢谢各位!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:TCL脚本语言培训课件.ppt
    链接地址:https://www.163wenku.com/p-4821451.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库