TCL 测试语言入门

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

置换
• 双引号和花括号
• 除了使用反斜杠外,TCL提供另外两种方法来使得解释器把分隔符和 置换符等特殊字符当作普通字符,而不作特殊处理,这就要使用双引 号和花括号({})。 • TCL解释器对双引号中的各种分隔符将不作处理,但是对换行符 及$ 和[]两种置换符会照常处理。例如: • %set x 100 • 100 • %set y "$x ddd" • 100 ddd • 而在花括号中,所有特殊字符都将成为普通字符,失去其特殊意义, TCL解释器不会对其作特殊处理。 • %set y {/n$x [expr 10+100]} • /n$x [expr 10+100]
注释:#
• • • '#'必须出现在TCL解释器期望命令的第一个字符出现的地方,才被当作注释。 %set a 100 # Not a comment %set b 101 ; # this is a comment
变量
• TCL支持两种类型的变量:简单变量和数组
• •
简单变量: TCL解释器在分析一个变量置换时,只把从$符号往后直到第一个不是字母、 数字或下划线的字符之间的单词符号作为要被置换的变量的名字。
练习册 puts
• puts ?-nonewline? ?channelId? string • • • • puts hello TCL中是以空格或者 TAB为分隔符 puts "hello" puts -nonewline hello hello puts -nonewline "hello hello"
相关命令
字符串操作 append - 在变量后添加变量 binary - 从二进制字符串中插入或释放数值 format - 使用sprintf的风格格式化一个字符串 re_syntax - Tcl正则表达式语法 regexp - 对正则表达式匹配器直接存取字符串 regsub - 基于正则表达式的模式匹配完成替换 scan - 使用指定的sscanf风格转换解析字符串 string - 操作字符串 subst - 完成反斜线、命令和变量替换
练习册 注释符号
• • • • $ set set set foo dollar x oo; foo; $$dollar;
“$”符实现引用替换,用以引 用参数值。Tcl对替换只进行 一遍解释,对嵌套的”$”不于 理睬。
[]
• set a 5*10; • set a [expr 5*10];
相关命令
• • • • • • • • • • • • • • • • • • 输入和输出 chan - 读写和操作I/O通道 close - 关闭一个打开的I/O通道 eof - 检查文件是否结束 fblocked - 测试I/O通道是否将数据准备好 fconfigure - 设置和查询I/O通道的属性 fcopy - 把一个I/O通道数据复制到另外一个I/O通道 file - 操作文件名和属性 fileevent - 在I/O通道准备好处理读写事件时执行一个脚本 flush - 清空缓存输出I/O通道数据 gets - 从I/O通道中读取一行 open - 打开一个文件或命令管道 puts - 向I/O通道写入数据 read - 从I/O通道读出数据 refchan - 反射I/O通道的命令句柄API,版本1 seek - 设置I/O通道的存取偏移量 socket - 打开一条TCP网络连接 tell - 返回I/O通道的当前存取偏移量
相关命令
• • • • • • 数学 expr - 求一个数学表达式的值 mathfunc - Tcl数学表达式的数学函数 mathop - Tcl命令的数学操作符 字典操作 dict - 操作字典
相关命令
• • • • • • • • • • • • • • • • 控制结构 after - 设置将来执行的命令 break - 中断循环 catch - 返回异常错误 continue - 进入下一个循环 error - 产生一个错误 eval - 调用一个Tcl脚本 for - 'For' 循环 foreach - 反复循环操作一个或多个列表的每个元素 if - 执行一个条件脚本 return - 从进程中返回或者返回一个值 switch - 根据一个特定的值,指定几个脚本中的一个 update - 处理挂起的时间和空闲回调 uplevel - 在不同的堆栈层中执行一个脚本 vwait - 一直等待直到一个变量被修改为止 while - 重复的执行脚本直到条件不匹配
• •
• • • •
数组 在TCL中,不能单独声明一个数组,数组只能和数组元素一起声明。数组中, 数组元素的名字包含两部分:数组名和数组中元素的名字,TCL中数组元素的 名字(下标〕可以为任何字符串。 set a monday set day(monday) 1 set b $day(monday) //b的值为1,即day(monday)的值。 set c $day($a) //c的值为1,即day(monday)的值。
置换
变量置换(variable subtitution) • • • • %set x 10 //定义变量x,并把x的值赋为10 10 %set y x+100 //y的值是x+100,而不是我们期望的110 x+100 命令置换(command substitution) %set y [expr $x+100] 110 %set y [expr $x+100;set b 300] 300
相关命令
• 变量和过程 • • • • • • • • • • • • apply - 申请一个匿名函数 array - 处理数组变量 global - 存取全局变量 incr - 增加变量的值 namespace - 创建和操作命令和变量的上下文 proc - 创建一个Tcl过程 rename - 重新命名或者删除一个命令 set - 读写变量 trace - 监视变量存取、命令用法和执行 unset - 删除变量 upvar - 在不同的堆栈层中创建一个变量的链接 variable - 创建和初始化一个名字空间变量
相关命令
• • • • • • • • • • • • • • • 库程序 encoding - 编码处理 http - 客户端执行的HTTP/1.0协议 Biblioteka Baidusgcat - Tcl消息目录 platform. - 系统支持的编码和相关应用程序 platform.:shell - 系统支持的编码和相关应用程序 系统相关 cd - 改变工作目录 clock - 获取和操作日期与时间 exec - 调用子过程 exit - 退出应用程序 glob - 返回模式匹配的文件名 pid - 获得进程ID pwd - 返回当前工作目录的绝对路径 time - 计算一个脚本的执行时间
相关命令
列表操作 concat - 将多个列表合并成一个列表 join - 把列表元素合并成一个字符串 lappend - 将元素添加到列表末尾 lassign - 将列表元素赋值给变量 lindex - 从列表中获得一个元素 linsert - 向列表插入一个元素 list - 创建一个列表 llength - 计算列表的元素个数 lrange - 返回列表中的一个或者多个临近的元素 lrepeat - 使用重复的元素构造一个列表 lreplace - 在一个列表中使用新的元素替代其它元素 lreverse - 反转列表元素的顺序 lsearch - 在列表中寻找特定元素 lset - 修改列表中的一个元素 lsort - 给列表中的元素排序 split - 将字符串分解成Tcl列表
• • • •
置换
反斜杠置换(backslash substitution) TCL语言中的反斜杠置换类似于C语言中反斜杠的用法,主要用于在单词符号中插入诸如换 行符、空格、[、$等被TCL解释器当作特殊符号对待的字符。 TCL支持以下的反斜杠置换: Backslash Sequence Replaced By \a Audible alert (0x7) \b Backspace (0x8) \f Form feed (0xc) \n Newline (0xa) \r Carriage return (0xd) \t Tab (0x9) \v Vertical tab (0xb) \ddd Octal value given by ddd (one, two, or three d's) \xhh Hex value given by hh (any number of h's) \ A single space character.
置换
(1)变量置换由一个$符号标记,变量置换会导致变量的值插入一个单词中。 (2)命令置换是由[]括起来的TCL命令及其参数,命令置换会导致某一个命令的所有或部 分单词被另一个命令的结果所代替。 (3)反斜杠置换:主要用于在单词符号中插入诸如换行符、空格、[、$等被TCL解释器当 作特殊符号对待的字符。 (4)双引号和花括号:TCL解释器对双引号中的各种分隔符将不作处理,但是对换行符 及 $和[]两种置换符会照常处理。 而在花括号中,所有特殊字符都将成为普通字符,失去其特殊意义,TCL解释器不会对其作 特殊处理。
TCL 测试语言入门
什么是TCL
TCL(Tool Command Language)是一种解释执行的脚本语言(Scripting Language)。 它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固 有的核心命令集。 TCL的解释器是用一个C\C++语言的过程库实现的.TCL语言的语法实际上是一些TCL解释 器怎样对TCL命令进行分析的规则的集合。 TCL解释器对一个命令的求值过程分为两部分:分析和执行。在分析阶段,TCL 解释器 运用规则把命令分成一个个独立的单词,同时进行必要的置换(substitution); 在执行阶 段,TCL 解释器会把第一个单词当作命令名,并查看这个命令是否有定义,如果有定义就 激活这个命令对应的C/C++过程,并把所有的单词作为参数传递给该命令过程,让命令过程 进行处理。TCL解释器只把命令行中的第一个单词作为看作命令,其他的单词都作为普通字 符串处理,看作是命令的参数。
相关命令
• • • • • • • • • • • • • • • • 软件包和源文件 load - 装载机器代码和初始化新命令 loadTk - 装载TK到一个安全解释器 package - 装载包和包的版本控制 pkg::create - 为给出包描述构造是个适当的'package ifneeded'命令 pkg_mkIndex - 为自动装载的包创建一个索引 source - 将一个文件或者资源作为Tcl脚本运行 tm - 方便的查找和装载Tcl模块 unload - 卸载机器代码 解释器 bgerror - 调用命令处理后台错误 history - 操作历史命令列表 info - 返回Tcl解释器的状态信息 interp - 创建并操作Tcl解释器 memory - 控制Tcl内存调试能力 unknown - 处理未知命令
相关文档
最新文档