Tcl 语言 ——语法篇


目录

1、脚本组成

2、处理过程

1、set 命令

2、expr 命令

3、lindex 命令

4、整合式命令(集合命令)

3、替换

1、变量替换

 2、命令替换

3、反斜杠替换

 4、引用

1、双引号引用

2、大括号引用

5、注释

参考说明



上一篇简单介绍了 Tcl 语言和Windows系统下学习环境的搭建过程,那么从这一篇开始,就开始学习 Tcl 脚本相关的语言知识。就本篇而言,主要介绍 Tcl 语言的语法。学习语言,更重要的还是在环境中不断练习。所以在学习语法本身的同时结合 Tclsh 运行的例子,进行相关说明。

我也是初学者,一起加油!

1、脚本组成

Tcl 脚本包含一条或多条命令。命令之间通过 换行符 或者 分号 分开;例

Tcl 语言 ——语法篇_第1张图片

每条命令都由一个或者多个单词,第一个单词是命令,后面的单词是命令的参数。

单词之间通过空格或者制表符(Tab)隔开。

每个单词都可以是任意的字符串值,而用来分隔单词的空格、换行符、分号等都不是单词的一部分。

2、处理过程

Tcl 语言 ——语法篇_第2张图片

 上图,就是Tcl 命令处理的解析和执行过程,先将单词拆分(需要替换的要先替换,如$input 就需要先将 input 的值取出替换),然后进行命令的执行。执行的过程依据不同的 命令或有所不同,因为在不同的命令下,命令单词后的各个 单词的含义不同。举几个例子:

1、set 命令

Tcl 语言 ——语法篇_第3张图片

 如上图的运行结果,set 命令 总是会把 命令后的第一个单词(参数)作为 变量名,第二个单词(参数)作为 变量的数值。

2、expr 命令

Tcl 语言 ——语法篇_第4张图片

 expr 命令 的结果必须是数值,所以当给一个无值字母时就会报错。

3、lindex 命令

Tcl 语言 ——语法篇_第5张图片

定义列表后,lindex 可以提取出对应索引号的列表元素。(注:索引号从 0 开始)

4、整合式命令(集合命令)

Tcl 语言 ——语法篇_第6张图片

 string 是对字符串操作的命令,第一个参数 length 表示求取字符串的长度,第三参数是待分析的字符串;

compare 参数为两个字符串的比较。

 【注】:以上的举例,都会在后续的博客中详细说明。

3、替换

【建议】同一条命令中不要使用过多的替换。

1、变量替换

变量替换 由 $ 符号进行替换,如

Tcl 语言 ——语法篇_第7张图片

 2、命令替换

命令替换由 [ ] 符号使用,[ ] 内应该是有效的 Tcl 命令

Tcl 语言 ——语法篇_第8张图片

3、反斜杠替换

反斜杠替换,类似于 C语言的转义字符前面 斜杠的用法,将一些Tcl语法中规定的特殊字符,转为普通字符

Tcl 语言 ——语法篇_第9张图片

 除此之外,

Tcl 语言 ——语法篇_第10张图片

 4、引用

1、双引号引用

一个单词(参数)的第一个字符是双引号,那么该单词就会由另一个双引号标记结束。

但是双引号本身不是单词(参数)的一部分。仅仅是一个标识符(界定符)

若一个单词(参数)包含在双引号中,那么解释器会对其中的 \、$、[] (即,反斜杠置换、变量置换、命令置换)正常起作用。

Tcl 语言 ——语法篇_第11张图片

如果单词(参数)不是以双引号开头,那么单词中的任何双引号都是普通字符。

如果被双引号作用的单词中想出现双引号,就是用 反斜杠置换。

Tcl 语言 ——语法篇_第12张图片

2、大括号引用

如果一个单词被包含在大括号内部,其内部所有特殊字符都会被当作普通字符处理。

5、注释

命令如果以 # 开头,本行认为是注释。但是需要注意位置。

Tcl 语言 ——语法篇_第13张图片

参考说明

【1】Ousterhout等 美 John K. Tcl/Tk入门经典[M]. 清华大学出版社, 2010. 第Ⅰ部分 第2章。

你可能感兴趣的:(Tcl,&,STA,Tcl)