没有合适的资源?快使用搜索试试~ 我知道了~
首页华为TCL培训教程(全)
华为TCL培训教程(全)

本文是TCL教材的第三稿,前两稿分别是《TCL的使用》和《TCL培训教程》。这一稿加入了不少内容,是北研TCL兴趣小组共同努力的结果。本文详细介绍了TCL的各个方面,特别对利用C\C++语言扩展TCL命令作了详细论述。本文附有大量实例。
资源详情
资源评论
资源推荐

TCL培训教程(全)
(内部使用)
深圳市华为技术有限公司

TCL培训教程(全) 华为内部资料
目 录
1 引言.....................................................................................................................................................................6
2 语法.....................................................................................................................................................................7
2.1 脚本、命令和单词符号..........................................................................................................................7
2.2 置换(substitution).....................................................................................................................................7
2.2.1 变量置换(variable subtitution).....................................................................................................8
2.2.2 命令置换(command substitution).................................................................................................8
2.2.3 反斜杠置换(backslash substitution).............................................................................................9
2.2.4 双引号和花括号.........................................................................................................................10
2.3 注释........................................................................................................................................................10
3 变量...................................................................................................................................................................11
3.1 简单变量................................................................................................................................................11
3.2 数组........................................................................................................................................................12
3.3 相关命令................................................................................................................................................12
3.3.1 set.................................................................................................................................................12
3.3.2 unset.............................................................................................................................................12
3.3.3 append和incr...............................................................................................................................13
4 表达式...............................................................................................................................................................13
4.1 操作数....................................................................................................................................................13
4.2 运算符和优先级....................................................................................................................................13
1.1 数学函数................................................................................................................................................14
2 List.....................................................................................................................................................................15
2.1 list命令...................................................................................................................................................16
2.2 concat命令:.............................................................................................................................................16
2.3 lindex命令..............................................................................................................................................16
2.4 llength命令.............................................................................................................................................16
2.5 linsert命令..............................................................................................................................................16
2.6 lreplace命令:..........................................................................................................................................16
2.7 lrange 命令:............................................................................................................................................17
8/5/2021 版权所有,好好利用 第2页,共72页

TCL培训教程(全) 华为内部资料
2.8 lappend命令:..........................................................................................................................................17
2.9 lsearch 命令:...........................................................................................................................................17
2.10 lsort命令:..............................................................................................................................................18
2.11 split命令:..............................................................................................................................................18
2.12 join命令................................................................................................................................................18
3 控制流...............................................................................................................................................................19
3.1 if命令......................................................................................................................................................19
3.2 循环命令:while 、for、 foreach........................................................................................................19
3.2.1 while命令....................................................................................................................................19
3.2.2 for命令........................................................................................................................................20
3.2.3 foreach命令.................................................................................................................................20
3.2.4 break和continue命令..................................................................................................................21
3.2.5 switch 命令..................................................................................................................................21
3.3 eval命令..................................................................................................................................................21
3.4 source命令..............................................................................................................................................22
4 过程(procedure).................................................................................................................................................22
4.1 过程定义和返回值................................................................................................................................22
4.2 局部变量和全局变量............................................................................................................................23
4.3 缺省参数和可变个数参数....................................................................................................................23
4.4 引用:upvar...........................................................................................................................................24
5 字符串操作.......................................................................................................................................................25
5.1 format命令.............................................................................................................................................25
5.2 scan命令.................................................................................................................................................26
5.3 regexp命令.............................................................................................................................................26
1.1 regsub命令.............................................................................................................................................28
1.2 string命令...............................................................................................................................................29
1.2.1 string compare ?-nocase? ?-length int? string1 string2..............................................................29
1.2.2 string equal ?-nocase? ?-length int? string1 string2...................................................................29
1.2.3 string first string1 string2 ?startindex?.......................................................................................29
1.2.4 string index string charIndex......................................................................................................29
1.2.5 string last string1 string2 ?startindex?........................................................................................30
8/5/2021 版权所有,好好利用 第3页,共72页

TCL培训教程(全) 华为内部资料
1.2.6 string length string......................................................................................................................30
1.2.7 string match ?-nocase? pattern string.........................................................................................30
1.2.8 string range string first last.........................................................................................................30
1.2.9 string repeat string count.............................................................................................................30
1.2.10 string replace string first last ?newstring?................................................................................31
1.2.11 string tolower string ?first? ?last?.............................................................................................31
1.2.12 string toupper string ?first? ?last?.............................................................................................31
1.2.13 string trim string ?chars?.........................................................................................................31
1.2.14 string trimleft string ?chars?.....................................................................................................31
1.2.15 string trimright string ?chars?...................................................................................................31
2 文件访问...........................................................................................................................................................31
2.1 文件名....................................................................................................................................................31
2.2 基本文件输入输出命令........................................................................................................................32
2.3 随机文件访问........................................................................................................................................33
2.4 当前工作目录.......................................................................................................................................34
2.5 文件操作和获取文件信息....................................................................................................................34
3 错误和异常.......................................................................................................................................................39
3.1 错误........................................................................................................................................................39
3.2 从TCL脚本中产生错误........................................................................................................................41
3.3 使用catch捕获错误................................................................................................................................41
3.4 其他异常................................................................................................................................................42
1 深入TCL............................................................................................................................................................44
1.1 查询数组中的元素................................................................................................................................44
1.2 info命令.................................................................................................................................................46
1.2.1 变量信息.....................................................................................................................................46
1.1.1 过程信息.....................................................................................................................................47
1.1.2 命令信息.....................................................................................................................................49
1.1.3 TCL的版本和库........................................................................................................................49
1.1.4 命令的执行时间........................................................................................................................49
1.1.5 跟踪变量....................................................................................................................................49
1.1.6 命令的重命名和删除................................................................................................................52
1.1.7 unknown命令.............................................................................................................................53
8/5/2021 版权所有,好好利用 第4页,共72页

TCL培训教程(全) 华为内部资料
1.1.8 自动加载.....................................................................................................................................54
2 历史记录...........................................................................................................................................................55
3 TCL和C\C++.....................................................................................................................................................58
3.1 生成自己的TCLSH...............................................................................................................................58
3.2 扩展自己的命令:方法(一).................................................................................................................59
3.2.1 编写扩展命令对应的C/C++过程..............................................................................................59
3.2.2 注册命令.....................................................................................................................................60
3.2.3 命令返回值和命令对应的过程的返回值.................................................................................61
3.3 扩展自己的命令:方法(二).................................................................................................................63
3.3.1 Tcl_Obj结构................................................................................................................................64
3.3.2 编写扩展命令对应的C/C++过程..............................................................................................65
3.3.3 注册命令.....................................................................................................................................66
3.4 利用clientData参数和deleteProc参数..................................................................................................67
3.5 在C/C++应用程序中嵌入TCL.............................................................................................................70
4 总结...................................................................................................................................................................72
8/5/2021 版权所有,好好利用 第5页,共72页
剩余63页未读,继续阅读
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论8