Tcl脚本测试入门

Tcl脚本测试入门

Tcl简介

    Tcl是一种非常简单的编程语言,如果你以前曾经学过编程,那么你只要学习几个小时就可以编写出一些有趣的Tcl程序。本文将对Tcl的功能做一个大概的 介绍。一般来说,读完本文之后,你就可以开始独立的编写一些简单的Tcl脚本了;不过,要想获得更全面的认识,我们建议你还是去参考几本目前已经出版的 Tcl书籍。 基本语法 Tcl脚本由一些被换行符或是分号分开的命令所组成。命令都有相同的基本格式,如下面的例子所示: expr 20 + 10 该命令计算2010的和,并返回结果30。你可以把这个例子以及本文中的所有其它的例子键入到tclsh这样的Tcl应用程序中来验证它们;在一个命令结束后,tclsh将打印出它的结果。 每个Tcl命令都含有一个或多个被空格分开的单词,在这个例子中有4个单词:expr,20,+,10。第一个单词是一个命令名,其余的单词是这个命令 的参数。所有的Tcl命令都含有一些单词,但不同的命令对他们的参数有不同的处理方式。expr命令把它的所有参数看作是一个算术表达式,计算表达式的结 果,并以字符串的形式返回结果。在expr命令中,单词之间的分隔不是很重要:同样的命令你可以写成这种形式: expr 20+10 不过,对大部分的命令来说,单词的结构是很重要的。每个单词都会用于不同的目的。所有的Tcl命令都返回结果。如果一个命令产生了没有意义的结果,那么它将返回一个空字符串作为它的结果。 变量 Tcl允许你在变量中保存数值,并且可以在后续的命令中使用这些数值。set命令用于对变量进行读写操作。比如,下面的命令对变量x赋值为32 set x 32 这个命令返回变量的新值。你可以让set只带一个参数来读出变量的数值: set x 你不需要在Tcl中声明变量:变量在第一次set的时候被自动创建。Tcl变量没有类型:任何值可以赋给任何变量。 要想在一个命令中使用变量的值,可以采用变量替代,如下例所示: expr $x*3 当一个字符$出现在一个命令中的时候,Tcl把跟在它后面的字母和数字看作是一个变量名并且将其替换成变量的值。在这个例子中,expr命令接收到的实际 参数将是32*3(假设变量x在前面的例子中被set过)。你可以在任何命令的任何单词中使用变量替代,甚至对一个单词多次使用: set cmd expr set x 11 $cmd $x*$x 命令替代 你也可以在一个命令的参数中使用另一个命令的结果。这被称之为命令替代: set a 44 set b [expr $a*4] 当中括号出现在一个命令中的时候,Tcl把中括号之间的所有语句看作是一组Tcl命令。Tcl对这组命令进行解释,并用结果替代中括号之间的文字。上面的例子中,第二个set命令的第二个参数将为176 双引号和大括号 双引号允许你指定包含空格的单词。我们看下面的这个例子: set x 24 set y 18 set z "$x + $y is [expr $x + $y]" 在这三个命令都被解释后,变量z的值将是24+18 is 42。双引号之间的所有语句作为一个单词传给set命令。此处需要注意几点(a)引号之间的命令和变量替代仍起作用,(b)引号自身不会被传给命令。如果 没有引号的话,set命令会得到6个参数,这将引起错误。 花括号对单词提供另外一种组合信息的方式。它与双引号的不同之处在于:花括号内的替代不起作用: set z {$x + $y is [expr $x +$y]} 这个命令把变量z赋值为 " $x + $y is [expr $x +$y]" 控制结构 Tcl提供一整套控制结构包括条件,循环和过程。Tcl的控制结构只是一些将Tcl脚本作为参数的命令。下面的示例创建了一个叫做powerTcl的过程,实现对一个数求它的n次方: proc power {base p}{ set result 1 while {$p >0}{ set result [expr $result * $base] set p [expr $p- 1] } return $result } 这个脚本由一个简单的命令proc所组成,这个proc命令有3个参数:过程名,参数名列表和过程体。过程体是一个Tcl脚本。需要注意的是,第一行末尾 的花括号和最后一行花括号之间的语句都被逐字逐句的作为一个参数传给procproc命令创建了一个新的叫做power的具有两个参数的Tcl命令。你 可以这样来调用power power 2 6 power 1.15 5 power被调用的时候,过程体就被解释了。当过程体执行的时候,它可以变量的形式进入它的参数中:base获得第一个参数,p获得第二个参数。 power过程体中包含3Tcl命令:set,whilereturnwhile命令完成了这个过程中的大部分工作。它有两个参数,一个表达式($ p>0)和一个Tcl脚本写的主体。while命令使用与C语言相似的规则来解释它的表达式参数。如果结果是真(非零),那么它将把函数体作为脚本 来执行。他不断的重复这个过程,直到最后表达式的值变为假(零)。在这个例子中,while命令的函数体将result的值与base相乘,然后减少p的 值。当p的值减到零的时候,结果就包含了需要的basen次方值。return命令的作用是退出过程,同时将变量result的值作为过程的结果返回。 命令是如何运作的? 正如你所见到的,Tcl中所有有趣的功能都是靠命令来描述的。声明是命令,表达式由可执行命令来解释,控制结构是命令,过程也是命令。 Tcl命令由3种方式来创建。一组命令由Tcl解释器自身来提供。这些命令称之为内建命令,他们包括到现在为止你已经看到的命令和更多其他的命令(见下面)。内建命令出现在所有的Tcl应用程序中。 第二组命令使用Tcl扩展机制来创建。Tcl提供许多API<

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值