tcl脚本语言中文详解

tcl脚本语言中文详解

ID:11146431

大小:332.00 KB

页数:58页

时间:2018-07-10

tcl脚本语言中文详解_第1页
tcl脚本语言中文详解_第2页
tcl脚本语言中文详解_第3页
tcl脚本语言中文详解_第4页
tcl脚本语言中文详解_第5页
资源描述:

《tcl脚本语言中文详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、TCL用法祥述一TCL语法1脚本、命令和单词符号一个TCL脚本可以包含一个或多个命令。命令之间必须用换行符或分号隔开,下面的两个脚本都是合法的:seta1setb2或seta1;setb2TCL的每一个命令包含一个或几个单词,第一个单词代表命令名,另外的单词则是这个命令的参数,单词之间必须用空格或TAB键隔开。TCL解释器对一个命令的求值过程分为两部分:分析和执行。在分析阶段,TCL解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换(substitution);在执行阶段,TCL解释器会把第一个单词当作命令名,并查看这个命令是否有定义,如果有

2、定义就激活这个命令对应的C/C++过程,并把所有的单词作为参数传递给该命令过程,让命令过程进行处理。2置换(substitution)注:在下面的所有章节的例子中,'%'为TCL的命令提示符,输入命令回车后,TCL会在接着的一行输出命令执行结果。'//'后面是我自己加上的说明,不是例子的一部分。TCL解释器在分析命令时,把所有的命令参数都当作字符串看待,例如:%setx10//定义变量x,并把x的值赋为1010%setyx+100//y的值是x+100,而不是我们期望的110x+100上例的第二个命令中,x被看作字符串x+100的一部分,如果我们想使用

3、x的值'10',就必须告诉TCL解释器:我们在这里期望的是变量x的值,而非字符'x'。怎么告诉TCL解释器呢,这就要用到TCL语言中提供的置换功能。TCL提供三种形式的置换:变量置换、命令置换和反斜杠置换。每种置换都会导致一个或多个单词本身被其他的值所代替。置换可以发生在包括命令名在内的每一个单词中,而且置换可以嵌套。1)变量置换(variablesubtitution)变量置换由一个$符号标记,变量置换会导致变量的值插入一个单词中。例如:%sety$x+100//y的值是10+100,这里x被置换成它的值1010+100这时,y的值还不是我们想要的值

4、110,而是10+100,因为TCL解释器把10+100看成是一个字符串而不是表达式,y要想得到值110,还必须用命令置换,使得TCL会把10+100看成一个表达式并求值。2)命令置换(commandsubstitution)命令置换是由[]括起来的TCL命令及其参数,命令置换会导致某一个命令的所有或部分单词被另一个命令的结果所代替。例如:%sety[expr$x+100]110y的值是110,这里当TCL解释器遇到字符'['时,它就会把随后的expr作为一个命令名,从而激活与expr对应的C/C++过程,并把'expr'和变量置换后得到的'10+11

5、0'传递给该命令过程进行处理。如果在上例中我们去掉[],那么TCL会报错。因为在正常情况下,TCL解释器只把命令行中的第一个单词作为看作命令,其他的单词都作为普通字符串处理,看作是命令的参数。注意,[]中必须是一个合法的TCL脚本,长度不限。[]中脚本的值为最后一个命令的返回值,例如:%sety[expr$x+100;setb300]//y的值为300,因为setb300的返回值为300300有了命令置换,实际上就表示命令之间是可以嵌套的,即一个命令的结果可以作为别的命令的参数。3)反斜杠置换(backslashsubstitution)TCL语言中的

6、反斜杠置换类似于C语言中反斜杠的用法,主要用于在单词符号中插入诸如换行符、空格、[、$等被TCL解释器当作特殊符号对待的字符。例如:setmsgmultiplespace//msg的值为multiplespace。如果没有''的话,TCL会报错,因为解释器会把这里最后两个单词之间的空格认为是分隔符,于是发现set命令有多于两个参数,从而报错。加入了''后,空格不被当作分隔符,'multiplespace'被认为是一个单词(word)。又例如:%setmsgmoney\$3333Arraya[2]//这个命令的执行结果为:money$3

7、333Arraya[2]这里的$不再被当作变量置换符。TCL支持以下的反斜杠置换:BackslashSequenceReplacedByaAudiblealert(0x7)bBackspace(0x8)fFormfeed(0xc)Newline(0xa)rCarriagereturn(0xd)tTab(0x9)vVerticaltab(0xb)dddOctalvaluegivenbyddd(one,two,orthreed's)xhhHexvaluegivenbyhh(anynumberofh's)ewlinespaceAsin

8、glespacecharacter.例如:%setax48//对应xhhH//十六进制的4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。