- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCL简介
TCL语法 脚本、命令和单词符号
一个TCL脚本可以包含一个或多个命令。命令之间必须用换行符或分号隔开,下面的两个脚本都是合法的:
set a 1 set b 2
或
set a 1;set b 2
TCL的每一个命令包含一个或几个单词,第一个单词代表命令名,另外的单词则是这个命令的参数,单词之间必须用空格或TAB键隔开。 TCL解释器对一个命令的求值过程分为两部分:分析和执行。在分析阶段,TCL 解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换(substitution); 在执行阶段,TCL 解释器会把第一个单词当作命令名,并查看这个命令是否有定义,如果有定义就激活这个命令对应的C/C++过程,并把所有的单词作为参数传递给该命令过程,让命令过程进行处理。
TCL语法 置换(substitution)
注:在下面的所有章节的例子中,%为TCL的命令提示符,输入命令回车后,TCL会在接着的一行输出命令执行结果。//后面是我自己加上的说明,不是例子的一部分。
TCL解释器在分析命令时,把所有的命令参数都当作字符串看待,例如:
%set x 10 //定义变量x,并把x的值赋为10 10 %set y x+100 //y的值是x+100,而不是我们期望的110 x+100
上例的第二个命令中,x被看作字符串x+100的一部分,如果我们想使用x的值10 ,就必须告诉TCL解释器:我们在这里期望的是变量x的值,而非字符x。怎么告诉TCL解释器呢,这就要用到TCL语言中提供的置换功能。
TCL提供三种形式的置换:变量置换、命令置换和反斜杠置换。每种置换都会导致一个或多个单词本身被其他的值所代替。置换可以发生在包括命令名在内的每一个单词中,而且置换可以嵌套。
■变量置换(variable subtitution)
变量置换由一个$符号标记,变量置换会导致变量的值插入一个单词中。例如:
%set y $x+100 //y的值是10+100,这里x被置换成它的值10
10+100
这时,y的值还不是我们想要的值110,而是10+100,因为TCL解释器把10+100看成是一个字符串而不是表达式,y要想得到值110,还必须用命令置换,使得TCL会把10+100看成一个表达式并求值。
■命令置换(command substitution)
命令置换是由[]括起来的TCL命令及其参数,命令置换会导致某一个命令的所有或部分单词被另一个命令的结果所代替。例如:
%set y [expr $x+100]
110
y的值是110,这里当TCL解释器遇到字符[时,它就会把随后的expr作为一个命令名,从而激活与expr对应的C/C++过程,并把expr和变量置换后得到的10+110传递给该命令过程进行处理。
如果在上例中我们去掉[],那么TCL会报错。因为在正常情况下,TCL解释器只把命令行中的第一个单词作为看作命令,其他的单词都作为普通字符串处理,看作是命令的参数。
注意,[]中必须是一个合法的TCL脚本,长度不限。[]中脚本的值为最后一个命令的返回值,例如:
%set y [expr $x+100;set b 300] //y的值为300,因为set b 300的返回值为300 300
有了命令置换,实际上就表示命令之间是可以嵌套的,即一个命令的结果可以作为别的命令的参数。
■反斜杠置换(backslash substitution)
TCL语言中的反斜杠置换类似于C语言中反斜杠的用法,主要用于在单词符号中插入诸如换行符、空格、[、$等被TCL解释器当作特殊符号对待的字符。例如:
set msg multiple\ space //msg的值为multiple space。
如果没有\的话,TCL会报错,因为解释器会把这里最后两个单词之间的空格认为是分隔符,于是发现set命令有多于两个参数,从而报错。加入了\后,空格不被当作分隔符,multiple space被认为是一个单词(word)。又例如:
%set msg money\ \$3333\ \nArray\ a\[2] //这个命令的执行结果为:money $3333 Array a[2] 这里的$不再被当作变量置换符。 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
您可能关注的文档
- Sewise 直播服务器软件V1.2接口说明-------视频校园直播系统.doc
- sgbz-0513室内蒸汽管道及附属装置安装_secret.doc
- sijicihuihah.doc
- SIMATIC S7 培训教材-22.顺序控制.ppt
- Simpack 大作业.pptx
- single breaker.doc
- SJ-80-1500高低压吹膜机.doc
- smthome_spc全部资料.ppt
- SOAPdenovo_Readme.doc
- Solaris基础手册.doc
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
最近下载
- 数字信号处理(北航)中国大学MOOC慕课 章节测验答案.docx
- 2022-2023学年盐城市滨海县高一上学期期中数学试卷(含答案解析).docx
- 挂牌上锁试题及答案.docx
- (必威体育精装版)24年秋统编一年级语文上册语文园地五(精品课件).pptx
- 国家开放大学必威体育精装版《建筑测量》形考任务(1-4)试题及答案 .pdf
- 血液净化治疗技术管理 第5部分:血液净化医疗机构应急处置规程.pdf VIP
- 福建省生活垃圾焚烧厂运行维护、检测监管与考核评价标准.doc
- DB32/T 3545.6-2023 血液净化治疗技术管理 第6部分:独立血液净化中心设置规范.pdf VIP
- 勾股定理 (共24张).ppt VIP
- SEW减速机说明书.pptx
文档评论(0)