TCL LEARN NOTE
TCL LEARN NOTE
BASIC
-
命令格式
- tcl命令类似于bash,单行单个命令结尾不需要加分号
- tcl单行多个命令,用分号区分
- perl script,命令结尾需要加分号
-
变量置换
set x 10 set y $x+20 -
命令置换
命令置换是由[]及其参数组成的
命令置换的结果是[]及其参数最后一个命令的返回值
set x 10 set y [expr $x+10] set y [expr $x+100;set b 300] //y的值为300 -
反斜杠置换
转义作用\
-
双引号花括号
- 花括号中的所有字符都将失去特殊意义,原样输出
- 双引号仅会对$/[]/换行符进行处理
-
注释
- tcl使用#注释,必须是在行首
#set var name set name lina #set comment (wrong) set name lina; #set comment (right) -
变量
变量置换时,将$后第一个不是数字/字母/下划线的字符作为字符段结尾
set a 5 set a.1 6 set b a.1 #result: b=5.1 set b ${a.1} #result: b=6 -
数组
- tcl不支持复杂变量
- 数组和数组元素要一起声明
set arrays(value1) 1 set arrays(value2) 2 set c $arrays(value1) #result c=1 -
操作数
- 八进制数:011对应十进制数9
- 十六进制数:0x11对应十进制数17
-
函数
- 绝对值:abs()
- 反余弦:acos()
- 反正弦:asin()
COMMAND
-
set
-
unset
-
append
追加一段文本
set str hello append str "lina" #result: hello lina -
incr
原来整数数值基础上加上一个数
set b 5 incr b 3 #result: b=8 -
list
- list是一组元素的有序集合
- 元素可以是字符也可以是一个list
list 12 25 {6 0} -
lindex
list索引
- lindex {list} index
list 2 8 {4 6} lindex {2 8 {4 6}} 2 #result: 4 6 -
llength
llength {list},返回list长度
llength {2 8 {4 6}} #result: 3 -
linsert
linsert {list} index list2
在索引值前插入list2形成一个新的list
list 1 2 3 linsert {1 2 3} 2 5 9 10 #result: 1 2 5 9 10 3 -
lreplace
lreplace {list} first last list2
first到last索引值元素被list2替换
list 1 3 5 7 9 lreplace {1 3 5 7 9} 1 2 2 4 6 8 #result: 1 2 4 6 8 7 9 -
lrange
lrange {list} first last
返回first到last索引值之间的元素
如果last为end就会返回从first到end之间的值
lrange {1 3 5 7 9} 2 3 #result: 5 7 -
lappend
每个value值作为一个元素附加到变量varname后面
set a 7 lappend a 1 2 3 #result:a= 7 1 2 3 -
lsearch
-
lsort
-
split
分隔命令
-
join
合并命令
控制语句
-
if语句
{一定要写在上一行
if和{之间有空格分隔
if {condition1} { }elseif { } else { } -
while语句
while {condition1} { } -
for语句
for {op1} {op2} {op3} { } -
foreach语句
foreach {list} { } -
break and continue
- break跳出整个循环
- continue结束本次循环
-
switch
switch $var { condition1 op1 condition2 op2 default op3 } -
eval
-
source

浙公网安备 33010602011771号