Linux启动TCL tclsh
输出值 echo
删除变量 unset
TCL基本语法
1.变量置换 $x
2.命令置换 []
3.反斜杆置换 \ set msg multiple\ space 输出 multi space
4.花括号{} {}内的一切作为一个整体字符串,内部不做置换
5.“” “”内的一切作为一个整体字符串,内部做置换
6.# 注释符 #This is a comment set b 10; #This is a comment
7.命令置换可以嵌套,变量置换不能嵌套
set m [expr [expr 2*$x]+1] set y ${$x} (×)
TCL函数
1.list 列表
2.llength list 返回list的元素个数
3.lindex list index 返回list的第index个元素(从第0个元素开始读)
4.lrange list first last 返回list的第first到last的元素,如果last的值是end。就是从第first个直到串的最后。
5.linsert list index value 返回一个新串,把value的值插入到list的第index个元素之前得到(如果list s 用变量表示的,前面加$)
6.lappend x value 在x后加上value的值
7.incr 把一个变量值加上一个整数,incr要求变量原来的值和新加的值都必须是整数。
8.concat list list 合并两个list
9.string match pattern string 如果pattern匹配string,那么返回1,否则返回0;pattern可以使用通配符(*(匹配string任意长的任意字符串)、?(匹配string中任意单个字符)、[](匹配字符集合[]中给出的任意字符串))
10.string map {oldstr newstr} $f 作用于f,将新的代替旧的
11.array names day 返回day的下标
12.lreplace list first last value value ... 返回一个新串,新串是把list的第firs到第last 个元素用所有的value参数替换得到的。如果没有value参数,就表示删除第first到第last个元素。
TCL表达式
1.expr 计算表达式的值
2.incr i x 在i上加x (如果没有x,默认加1)
TCL命令
1.循环命令
while test body 参数test是一个表达式,body是一个脚本,如果表达式的值非0,就运行脚本,直到表达式为0才停止循环,此时while命令中断并返回一个空字符串。
for init test reinit body 参数init是一个初始化脚本,第二个参数test是一个表达式,用来决定循环什么时候中断,第三个参数reinit是一个重新初始化脚本,第四个参数body也是脚本。
foreach varName list body 第一个参数varName是一个变量,第二个参数list是一个表(有序集合),第三个参数body是循环体。每次取得链表的一个元素,都会执行循环体一次。
foreach varlist1 list1 varlist2 list2 ... body 第一个参数varlist1是一个循环变量列表,第二个参数是一个列表list1,varlist1中的变量会分别取list1中的值。body参数是循环体。 ?varlist2 list2 ...?表示可以有多个变量列表和列表对出现。
2.终止命令
break和continue命令中断循环。其中break命令结束整个循环过程,并从循环中跳出,continue只是结束本次循环。
如果想在过程内部引用一个全局变量(在所有过程之外定义的变量,称为全局变量),可以使用global 命令。
3.过程定义和返回值 proc add {x y} {expr [$x+$y]}
proc命令的第一个参数是你要定义的过程的名字,第二个参数是过程的参数列表,参数之间用空格隔开,第三个参数是一个TCL脚本,代表过程体。 proc生成一个新的命令,可以像固有命令一样调用。