- 一个Tcl脚本可以包含多少个命令?同一脚本中的不同命令之间是怎么区分的?
- 一个命令是怎么组成的?
- 编辑器对TCL指令是怎么去执行的?
- 置换符有哪些?变量置换和命名置换和反斜杠置换的定义和用法?
- 使用变量置换时是怎么界定变量的范围的,从什么开始到什么结束?
- 如果置换的变量中有不是数字和字母和下划线的字符怎么处理?
- 已有%set a 1 %set a.1 5 则 %set b ${a.1} 与 %set b $a.1 为多少呢?
- 双引号和花号的区别?
- 注释符号#的用法(出现的位置)以及一句命令行怎么算结束?
答案:
1、一个TCL脚本中可以包含多条指令,但是每个命令必须使用换行符号和分号隔开,一个在同一行内写入多条指令常用分号进行隔开。
2、TCL命令是有多个英语单词组成的,且单词之间是使用TAB键隔离开的。在最顶层将其进行划分时,可以分为二个部分,它们为:表示命令的单词+其他单词。
3、编辑器对TCL指令进行识别时,将命令的每个单词进行分析,同时进行必要的替换,把第一个单词当做操作命令名,在库中进行对比,如果这个单词有定义,则会激活对应指令的执行过程,并进行必要的参数传递。
4、常见的置换符号
变量置换符号$ :它的作用是将紧跟其后的变量的值插入到新的变量。
命令置换符号[] :它的作用会导致某个指令的所有或部分单词被另一个指令的结果所代替。
举例子吧: %set x 5 ; %set y x+10 ; ----------> y的值为 x+10
%set x 5; %set y $x+10 ; --------> y的值为 5+10
如果想要得到110呢?那是不是的计算这个表达式呢,那就要用到新的指令了,
%set x 5 ; %set y $x+10 ; %expr y --------> y的值为15
但是这样很繁琐,为了方便写在一起呀,所以有了命令置换符号[ ],编辑器遇到[时, 会将其后的单词当做一个命令,激活相应的操作。
%set x 5 ; %set y [expr $x+10] ; --------> y的值为15
但是使用[ ]需要注意,它自身作为一个脚本,在[ ]脚本中的值为最后一个命令的返回 值:
%set x 5 ; %set y [expr $x+10 ; set b 50] ;----------> y为50
反斜杠置换符号\ :它的作用类似于C,我们想在单词中插入换行符、空格、[、$、等符号 时,因为这些符号本身具有一定的意义,所有使用反斜杠({}、()也可以)让它失去本来 的意义。
5、使用变量置换时,编辑器只把$符号往后直到第一个不是字母、数字或下划线的单词符号作为要被置换的变量的名字。
%set a 2 ; %set a.1 4 ; %set b $a.1 ; %set c ${a.1}---------> b为2.1, c为4
6、置换的变量中有不是数字和字母和下划线的字符时,可以使用花括号把变量包括起来。
7、5和1.1
8、在花括号和双引号内,所有的特殊字符会成为普通字符,失去它原来的特殊意义
%set x 200 -------> x为200
%set y “$x add” -------> y为200 add
%set y {/n$x [expr 10+100]} -------> y为/n$x [expr 10+100]
9、#和#所在行结尾的所有字符都认为是注释,#必须出现在命令字符出现的位置。