摘要
- Tcl的简介
- Tcl的语言结构
1. Tcl简介
Tcl(Tool Command Language)是一种非常流行的脚本语言,常用于开发用户接口和嵌入式系统平台的应用程序。TCL具有多种语言结构:变量、列表、表达式与运算符、控制流语句、过程。
2. Tcl变量
Tcl变量是ASCII字符串,变量使用set命令来分配。
set abc "1234" #将1234赋值给变量abc
put $abc #将打印出1234
3. Tcl列表
Tcl列表是对象的集合,可以对列表进行添加、索引、搜索。
set gates [list AND OR NOT NAND NOR] #创建列表
set gates [lappend gates XOR] #将另一个项目添加到列表中
puts [lsearch $gates NOT] #在列表中搜索,将返回列表中匹配的索引,此处为返回2
puts [lsearch $gates XNOR] #此处返回-1,因为找不到匹配项
4. Tcl表达式与运算符
Tcl使用expr命令对表达式求值
set x 10;
expr {$x+20} ; #返回的值为30
Tcl中支持的运算符
运算符 | 描述 |
- + ~ ! | 一元减、一元加、按位取反、逻辑非 |
+ - * / | 加、减、乘、除 |
** | 指数 |
< > <= >= === != | 关系运算符:小于、大于、小于或等于、大于或小于、等于、不等于 |
eq ne | 比较两个字符串相等(eq)或不相等(ne) |
in ni | 检查列表中包括(in)或不包括(ni)字符串的运算符,返回1为真,0为假 |
& | ^ | 按位与、或、异或 |
&& || | 逻辑与、或 |
<< >> | 左移或右移 |
5. Tcl的控制流语句
Tcl的控制流语句结构组成:列表遍历、决策、循环、子程序。
5.1列表遍历
set gates [list AND OR NOT NAND NOR]
set index 1
foreach element $gates {
puts "Gate $index in the list is $element"
incr index; #index自动加一
}
结果如下:
Gate 1 in the list is AND
Gate 2 in the list is OR
Gate 3 in the list is NOT
Gate 4 in the list is NAND
Gate 5 in the list is NOR
5.2 决策
if {$freq < 330} {
puts "AAA"
} elseif {$freq > 330} {
puts "BBB"
} else {puts "CCC"}
5.3 Tcl循环
for <初值> <条件> <下一步> {
<语句体>
}
while <条件>{
<语句体>
}
5.4 Tcl过程
proc sum {addend1 addend2} {
set value [expr {$addend1} + {$addend2}]
return $value
}
#调用过程
set x [sum 5 10]
put $x # 将打印出15
6. 其他Tcl命令
命令 | 描述 |
open / close | 打开和关闭文件 set fhandle [open "file.txt" w] close $fhandle |
gets / puts | 获取字符串或打印字符串 |
catch | 从一条命令中捕获错误命令,以防止Tcl shell退出 |
info | 从Tcl解释器获取信息所使用的命令 info exists <name>:如果name作为变量存在,则返回1,否则返回0 |
source | 获取Tcl文件或脚本的源命令 |
incr | 增加索引命令 |
exit | 从Tcl shell退出命令 |