一、TCL概述
TCL语言的使用范围
启动TCL的方法
linux系统下
$tclsh
%
%
%exit
TCL语法
置换:把命令分成独立的单词,同时进行必要的置换
- 变量置换$:TCL解释器认为$后面是变量名,将变量置换成它的值。
% set A "I Love TCL"
I Love TCL
% puts $A
I Love TCL
- 命令置换[]:[]内是一个独立的TCL语句,如下(expr 13+14)是一个指令。
% set B [expr 13+14]
27
- 反斜杠置换\:换行符、空格、[、$等被TCL解释器当作特殊符号的字符,加上反斜杠后变成普通字符。
\t:TAB
\n:换行
% set C "\[expr\t1314\]"
[expr 1314]//中间是TAB
% set D "A\nB"
A
B
特殊符号:" "、{ }、#
""示例:
% set E "\t[expr 13+14]"
27
{}示例:
% set F {\t[expr 13+14]}
\t[expr 13+14]
#示例:
% #[expr 13+14]
%
二、变量、数组、列表
- 变量:变量相当于一个容器,可以存储一个值。
% set A "I Love TCL"//赋值
I Love TCL
% puts ${A}_1//取值
I Love TCL_1
- 数组:TCL中数组存储的各个值可通过元素名进行检索。
% set B(small_name) "xiaoming"
xiaoming
% set B(big_name) "mingming"
mingming
% array size B
2
% array names B
xiaoming mingming
- 列表:列表是标量的有序集合
![](https://i-blog.csdnimg.cn/direct/a45935c65c0448afbf15287e25c3a465.png)
//定义
% set list1 {A B}
A B
% set list2 {C D}
C D
% puts $list1
A B
//合并
concat $list1 $list2
A B C D
//获取列表最后一个元素
% lindex $list1 [expr [llength $list1] -1 ]
B
//返回元素个数
% llength $list1
2
//在列表末尾加上新元素
% lappend list1 C
A B C
//排序
//默认按照ASCII码进行排序,"-real"按照浮点数值大小,"-unique"唯一化,删除重复元素
% set A {e d a c b}
% lsort $A
a b c d e
% set B {1 -3 4 0}
% lsort -real $B
-3 0 1 4
% set C {1 1 1 2 3}
% lsort -unique $C
1 2 3
三、运算
- 数学运算
a+b
a-b
a*b
a/b
- 逻辑运算
a<=b
a>=b
a==b
a!=b
- 数学运算指令 expr
% expr 5/2
2
% expr 5.0/2
2.5
% expr 5/2.0
2.5