1    TCL语法    4
1.1    简介    4
1.2    运行环境    4
1.3    本文约定    4
1.4    参考资料    4
2    引言    5
2.1    第1课:简单文本输出    5
2.2    第2课:给变量赋值    5
2.3    第3课:命令的赋值与置换一    6
2.4    第4课:命令的赋值与置换二    7
2.5    第5课:命令的赋值与置换三    7
2.6    第6课:算数运算    8
2.7    第7课:文本比较-SWITCH应用    9
2.8    第8课:数值比较-IF应用    10
2.9    第9课:WHILE 循环    11
2.10    第10课:FOR循环和incr    11
2.11    第11课:过程PROC    12
2.12    第12课:过程PROC的参数定义    13
2.13    第13课:变量的作用域    13
2.14    第14课:LIST结构    14
2.15    第15课:LIST项的增删改    15
2.16    第16课:更多LIST相关    16
2.17    第17课:字符串函数    17
2.18    第18课:更多字符串函数    17
2.19    第19课:修改字符串函数    19
2.20    第20课:正则表达式    21
2.21    第21课:更多正则表达式    22
2.22    第22课:数组    24
2.23    第23课:更多数组相关    25
2.24    第24课:文件存取    28
2.25    第25课:文件信息    30
2.26    第26课:TCL中的子进程调用-open & exec    33
2.27    第27课:命令或者变量是否存在-info    34
2.28    第28课:解释器状态-info    35
2.29    第29课:过程信息-info    36
2.30    第30课:模块化-source    37
2.31    第31课:建库-unknown & info library    38
2.32    第32课:创建命令-eval    40
2.33    第33课:在eval中应用format & list    40
2.34    第34课:不使用eval替换-format & subst    42
2.35    第35课:改变工作目录- cd & pwd    43
2.36    第36课:调试和错误-errorinfo & errorCode & catch    43
2.37    第37课:调试-trace    45
2.38    第38课:命令行参数和环境串    46
2.39    第39课:time & unset    47
2.40    第40课:socket & fileevent & vwait    49
2.41    第41课:日期时间-clock    51
2.42    第42课:i/o通道-fblocked & fconfig    53
2.43    第43课:子解释器    55
2.44    第44课:数据库操作    57
3    跋    60

1 TCL语法
1.1 简介
作为脚本语言,tcl语法简单而功能强大。它诞生于80年代初,进入中国的时间也许多年了。不过关于tcl的资料多而杂,一时心血来潮,想到写一篇文章,以例子为中心,系统讲解tcl语法,让技术人员花最少的时间对tcl有个全面而系统的了解,工作上使用时可以速查或参考代码。于是有了本文。
1.2 运行环境
多数代码运行在 ActiveTcl8.3.4. 安装以后的windows环境中,只有两个例程运行在unix的环境下。
1.3 本文约定
本文为了便于速查和速学,所以每课分成讲解和例子两部分,主要是围绕着例子进行讲解。文字不多。
1.4 参考资料
本文主要参考了《TclTutor 2.0 beta4》。

2 引言
2.1 第1课:简单文本输出
讲解:
1.    注释符号是 # 或者 ;# ,在命令后注释用 ;# ,在行开头两者均可;
2.    puts :输出文本,多个单词如被空格或TAB分隔需要使用“”或{} 括起来;
3.    多个命令写在一行使用 ; 间隔。
例子:l
# ok                        ;# 正确
;# ok                        ;# 正确
;  # ok                      ;# 正确, 分号和井号之间可以有空格
puts Hello                    ;# 正确
puts Hello,World              ;# 正确,多个单词之间不是被空格或者TAB分隔开
puts Hello World              ;# 这行命令运行出错,被空格分隔
puts "Hello, World - In quotes"  ;# 注释
puts {Hello, World - In Braces}    # 这行命令运行出错,必须使用 ;# 作为注释符号
puts "This is line 1"; puts "this is line 2"    ;# 正确,用分号分隔两个命令
puts "Hello, World; - With  a semicolon inside the quotes"    ;#正确,分号在双引号内,作为字符串一部分
2.2 第2课:给变量赋值
讲解:
1. set:给变量赋值,格式为 set var value
例子:l
;# 给变量X赋一个字符串
set X "This is a string"
;# 给变量Y赋一个数字
set Y 1.24
;# 显示X和Y的内容
puts $X
puts $Y
;# 打印一个分隔串
puts "..............................."
;# 打印在一行中,推荐使用双引号
set label "The value in Y is: "
puts "$label $Y"
puts $label$Y
2.3 第3课:命令的赋值与置换一
讲解:
1. TCL中命令的赋值分为置换和赋值两个步骤
2. 续行符为 \
3. 转义符同为 \
4. 特殊字符列表:
序号
字符
输出
十六进制
1
\a
响铃
\x07
2
\b
回车
\x08
3
\f
清屏
\x0c
4
\n
换行
\x0a
5
\r
回车
\x0d
6
\t
制表符
\x09
7
\v
垂直制表符(Vertical Tab)
\x0b
8
\ddd
八进制值
d=0-7
9
\xhh
十六进制值
h=0-9,A-F,a-f
字符串操作函数puts例子:l
;# Show how a \ affects the $
set Z "Albany"
set Z_LABEL "The Capitol of New York is: "
puts "$Z_LABEL $Z"                ;#显示Albany
puts "$Z_LABEL \$Z"              ;#显示$Z,被 \ 转义
;# The next line needs a backslash to escape the '$'
puts "\nBen Franklin is on the \$100.00 bill"    ;# \n换行; $100前的 \ 必须有,否则会将100作为一个变量,提示出错
set a 100.00
puts "Washington is not on the $a bill"    ;# This is not what you want

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。