TCL LEARN NOTE

TCL LEARN NOTE

BASIC

  1. 命令格式

    • tcl命令类似于bash,单行单个命令结尾不需要加分号
    • tcl单行多个命令,用分号区分
    • perl script,命令结尾需要加分号
  2. 变量置换

    set x 10
    set y $x+20
    
  3. 命令置换

    命令置换是由[]及其参数组成的

    命令置换的结果是[]及其参数最后一个命令的返回值

    set x 10
    set y [expr $x+10]
    
    set y [expr $x+100;set b 300] //y的值为300
    
  4. 反斜杠置换

    转义作用\

  5. 双引号花括号

    • 花括号中的所有字符都将失去特殊意义,原样输出
    • 双引号仅会对$/[]/换行符进行处理
  6. 注释

    • tcl使用#注释,必须是在行首
    #set var name
    set name lina  #set comment 	(wrong)
    set name lina; #set comment 	(right)
    
  7. 变量

    变量置换时,将$后第一个不是数字/字母/下划线的字符作为字符段结尾

    set a 		5
    set a.1		6
    set b		a.1
    #result:	b=5.1
    
    set b		${a.1}
    #result:	b=6
    
  8. 数组

    • tcl不支持复杂变量
    • 数组和数组元素要一起声明
    set arrays(value1) 1
    set arrays(value2) 2
    set c $arrays(value1)
    
    #result c=1
    
  9. 操作数

    • 八进制数:011对应十进制数9
    • 十六进制数:0x11对应十进制数17
  10. 函数

    • 绝对值:abs()
    • 反余弦:acos()
    • 反正弦:asin()
    • google

COMMAND

  1. set

  2. unset

  3. append

    追加一段文本

    set str hello
    append str "lina"
    #result: hello lina
    
  4. incr

    原来整数数值基础上加上一个数

    set b 5
    incr b 3
    #result: b=8
    
  5. list

    • list是一组元素的有序集合
    • 元素可以是字符也可以是一个list
    list 12 25 {6 0}
    
  6. lindex

    list索引

    • lindex {list} index
    list 2 8 {4 6}
    lindex {2 8 {4 6}} 2
    #result: 4 6
    
  7. llength

    llength {list},返回list长度

    llength {2 8 {4 6}}
    #result: 3
    
  8. 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
    
  9. 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
    
  10. lrange

    lrange {list} first last

    返回first到last索引值之间的元素

    如果last为end就会返回从first到end之间的值

    lrange {1 3 5 7 9} 2 3
    #result: 5 7
    
  11. lappend

    每个value值作为一个元素附加到变量varname后面

    set	a	7
    lappend a 1 2 3
    #result:a= 7 1 2 3
    
  12. lsearch

  13. lsort

  14. split

    分隔命令

  15. join

    合并命令

控制语句

  1. if语句

    {一定要写在上一行

    if和{之间有空格分隔

    if {condition1} {
    
    }elseif {
    
    } else {
    
    }
    
  2. while语句

    while {condition1} {
    
    }
    
  3. for语句

    for {op1} {op2} {op3} {
    
    }
    
  4. foreach语句

    foreach {list} {
    
    }
    
  5. break and continue

    • break跳出整个循环
    • continue结束本次循环
  6. switch

    switch $var {
    condition1 op1
    condition2 op2
    default	   op3
    }
    
  7. eval

  8. source

procedure

posted @ 2020-12-26 15:33  MOVIT  阅读(88)  评论(0)    收藏  举报