tcl脚本语言(上).ppt_第1页
tcl脚本语言(上).ppt_第2页
tcl脚本语言(上).ppt_第3页
tcl脚本语言(上).ppt_第4页
tcl脚本语言(上).ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TCL脚本语言、语法变量表达式LIST控制流进程字符串操作,一个语法、脚本、命令和单词符号TCL脚本可以包含一个或多个命令。命令必须用换行符或分号分隔。以下两个脚本都是合法的。set a 1 set b 2或set a 1;Set b 2 TCL中的每个命令包含一个或多个单词,第一个单词表示命令名,其他单词必须作为该命令的参数在单词之间用空格或TAB键分隔。语法和替代变量替代变量由$符号表示,变量替代是将变量值插入到一个单词中的命令。重新定位命令重新定位是括在中的TCL命令及其自变量,重新定位命令会将一个命令的全部或部分单词替换为另一个命令的结果。反斜线替换反斜线替换用于在单词符号中插入TCL

2、解释器视为特殊字符(如换行符、空格和,$)的字符。语法、双引号和大括号TCL解释程序不会处理双引号中的分隔符,但会正常处理换行符和$和替换字符。大括号中的所有特殊字符都失去了特殊含义,TCL解释器不处理特殊字符。语法、注释TCL中的注释字符被TCL视为注释,直到“#”、“#”和行尾为止,TCL解释器不处理注释。但是,请注意,直到TCL解释器遇到预期命令的第一个字符时,“#”才会被视为注释。变量和简单变量一个TCL中的简单变量由两部分组成:名称和值。名称和值可以是任何字符串。但是,为了改进替代使用,建议您根据CC语言中标识符的名称约定命名变量名称。在分析变量替换时,TCL解释器仅使用$符号之后到

3、第一个非下划线字符之间的单词符号作为要替换的变量的名称。如果变量名称包含字母、数字或非下划线字符,则可以将替换字符括在花括号中。变量、数组数组是一些元素的集合。在TCL中,不能单独声明多个组,数组只能与数组元素一起声明。阵列中阵列元素的名称包含两个部分:阵列名称和阵列中元素的名称,以及TCL中阵列元素的名称(下标),这两个部分可以是任何字串。数组元素的位移与简单变量类相同,但括号除外。变量、创建变量、读取或更改变量值的相关命令set命令。Unset命令从解释器中删除变量,其后可以有任意多个参数,每个参数都是变量名称,可以是简单变量,也可以是数组或数组元素。Append命令将文本添加到变量之后。

4、Incr命令通过将整数与变量值相加来执行命令。Incr要求变量的原始值和新添加的值都是整数。表达式和TCL中的表达式类似于ANSI C中的表达式。表达式由操作数和运算符组成。操作数TCL表达式中的操作数通常为整数或实数。整数通常是十进制数,但是如果整数的第一个字符为0(零),则TCL将此整数视为八进制数,如果前两个字符为0 x,则将此整数视为十六进制数。TCL中的错误与ANSIC完全相同。运算符类似于优先级TCL中使用的运算符,ANSI C的语法和用法相似,运算符优先级与ANSI C的规则相同。list和LIST概念用于在TCL中表示集合。在TCL中,list是由一堆图元组成的有序集合,lis

5、t可以嵌套定义。List每个元素可以是任何字符串或list。以下是TCL的有效列表:/空list a b c d a b c d /list可以嵌套TCL中更重要的数据结构list,这有助于编写复杂脚本。,List,list命令语法:LIST?Value value.功能:此命令生成list,其中list中的元素为所有value。实例:% list 1 2 3 4 1 2 3 4,list,concat命令语法:concat list?List.功能:此命令将多个list合并为一个list,每个list成为新list的一个元素。list,lindex命令语法:返回lindex list ind

6、ex功能:LIST的第二个(0-based)元素。实例:% lindex 1 2 3 4 2 3 4 #注意,list,llength命令语法:返回llength list功能:LIST的元素数。实例:% llength 1 2 3 4 ,list,l insert命令语法:linsert list index value?Value.函数:返回一个新字符串,其中所有值参数值都插入到list的第一个(0-value)元素之前。实例:% l insert 1 2 3 4 1 7 8 9 10 1 7 8 9 10 2 3 4 ,list,l replace命令语法:lreplace list f

7、irstValue value.功能:返回一个新字符串,该字符串将替换为从list的first(0-based)到last (0-based)元素的所有value参数。如果没有Value参数,则会删除first到last的元素。示例:% l replace 1 7 8 9 10 2 3 4 3 1 7 8 2 3 4 % l replace 1 7 8 2 3 4 4 4 4 4 4 5 6 1 8 4 5 5从第一个到字符串末尾。实例:% l range 1 7 8 2 4 5 6 3 end 2 4 5 6,list,lappend命令语法:lappend varname value?Va

8、lue.功能:将每个value的值作为元素添加到可变卷varname之后,如果varname不存在,则返回变量的新值。实例:% lappend a 1 2 3 1 2 3,LIST,split命令语法:split string?SplitChars?功能:将字符串字符串除以分隔符splitChars(string也对此进行分区),以返回由该词组成的字符串。如果SplitChars为空字符,则string按字符分隔。如果未提供SplitChars,则string按原样输出。实例:% split how.are.you 。how are you % split how are you % spli

9、t how are you h o w a r e y o u,list,join命令语法:join list联接?功能:join命令是命令的反向。此命令将list中的所有元数合并为一个以joint分隔的字符串。默认joinString为空。实例:% join h o w a r e y o u how are you % join how are you 。how.are.you,控制流,If命令语法:if test1 body1?Elseif test2 body2 elseif.Else bodyn?函数:TCL首先将test1作为表达式进行计算,如果值不为零,则返回通过脚本运行body

10、1获得的值。否则,将test2作为表达式进行计算,如果值不为零,则作为值进行计算。Body2通过脚本运行,并返回结果值.例如:if $ x0 . else if $ x=1 。 else if $ x=2 。 else 注意:1,在上一个示例中,“”必须写入上一行;2、if和之间必须有一个空格。控制流、循环命令while命令for命令foreach命令、控制流、while命令语法:while test body函数:参数test是表达式,body是脚本,如果表达式的值非零,则在表达式为零之前将不执行脚本,while命令将中止并返回空字符串。例如,a的值为b set a 1 2 3 4 set

11、b set Iexprllength $ a-1while $ I=0 lappen db例如,a的值为b set a 1 2 3 4 set b for set Iexprllength $ a-1 $ I=0 incr I-第一个参数varname是变量,第二个参数list是表(排序的集),第三个参数body是循环主体。每次导入Linklist中的一个元素时,都会执行一次循环体。示例:a的值为b set a 1 2 3 4 set b foreach I $ a set bl insert $ b 0 $ I,控制流,foreach命令语法2: foreachVarlist2 list2.

12、Body功能:此表单包含第一个表单。第一个参数varlist1是循环变量列表,第二个参数是列表。List1和varlist1的变量分别采用list1的值。Body参数是循环体。-嗯?Varlist2 list2.表示可能出现多个变量列表和列表对。例如:set x foreach I j a b c d e f lappend x $ j $ I 此时,总共有三个循环,x的值为“b a d c f e”,控制流、break和continue其中,break命令结束整个循环过程,脱离循环,continue结束此循环。控制流,switch命令语法:switch?Options?String patt

13、ern body?Pattern body.功能:第一个是可选参数options,它指示如何执行匹配。第二个参数string是要用于测试的值,第三个参数是周围的一个或多个元素对。实例:switch $ x a-b incrt 1 c incrt 2 default incrt 3 ,控制流,eval命令语法:eval arg?Arg.功能:这是配置和运行TCL脚本的命令。您可以接收一个或多个参数,然后将所有参数括在一个脚本中(以空格分隔),然后评估此脚本。实例:% % eval set a 2;Set b 4 4,控制流,source命令语法:source path功能:source命令读取文

14、件并将文件的内容评估为脚本。范例:source e:/tclc/hello.tcl注意:路径的说明必须与UNIX相同,且必须使用/代替 。进程、TCL支持进程的定义和调用,在TCL中,可将经过视为TCL脚本实现的命令,其效果类似于TCL的固有命令。您可以随时使用proc命令定义自己的过程,proc命令是TCL的过程类,例如c的函数。过程、过程定义和返回值proc命令语法:proc proname varlist body函数:proc命令的第一个参数是要定义的过程的名称,第二个参数是过程的参数列表,参数之间用空格分隔,第三个参数是表示过程主体的TCL脚本。实例:% proc add x y expr $x $y return命令可以在定义过程时使用return命令在任何地方返回所需的值。Return命令快速停止进程,并使用其参数作为进程的结果。流程、本地变量和全局变量在流程中定义的变量称为本地变量,因为它们只能在流程期间访问,并会在流程结束时自动删除。在所有进程外定义的变量称为全局变量。在TCL中,局部变量和全局

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论