1.如何启动
在linux下,输入tclsh
在文本中第一行输入,“#!/user/bin/tc/sh” (tcl安装路径)
1.变量
set NMME zhangsan #自己定义的变量
set_app_var target_library [list *db] #系统变量赋值
$NAME #变量引用
2.IF判断
注意: { 应当和if同行,不可换行 ,下面使用{的部分同理
set VAR 0
if{$VAR} {
echo "Good!"
}
else{
echo "Bad!"
}
3.case语句
switch -regexp -exact $NAME{
"zhangsan" {
echo "my name is $NAME";
}
"lisi" {
echo "my name is $NAME";
}
default {
echo "Error!";
}
4.while循环
set i 0
while{$i < 10} {
echo "current value of i is $i";
incr i 1
}
5.for循环
for{set idx 0} {$idx < 10} {incr idx 1} {
if{$idx == 8} {
continue;
}
echo "current value of idx is $idx";
}
6.正则表达
正则表达是一种非常特殊的字符串表达式,用来匹配符合规则的字符串
\w | 用来匹配一个字母、下划线 |
\d | 用来匹配一个数字 |
* | 0次或多次匹配 |
+ | 1次或多次匹配 |
? | 0次或1次皮牌 |
^ | 字符串开头 |
$ | 字符串结尾 |
\s | 表示空格 |
. | 表示任意字符 |
正则匹配指令
regexp -在字符串中用正则表达式匹配
例:匹配“abc456”
regexp {\w+\d+} "abc456"
例:捕获字符串人名和年龄 "jason is a 30 years old"
regexp {^(\w+)\s\w+\s(\d+)\s.*} "jack is 30 years old" total name age
puts $total #此处total 是 "jack is 30 years old"
puts $name #此处name 是 "jack"
puts $age #此处age是"30"
7.文件写
set SRC "Good night"
set file_wr_id [open data.txt w+] #若文件不存在,创建新文件
puts $file_wr_id $SRC #SRC的内容写入文本
flush $file_wr_id #刷新
close $file_wr_id #关闭文件
8.文件读
set DST ""
set file_rd_id [open data.txt r]
gets $file_rd_id DST
echo "Read from file is {$DST}"
close file_rd_id
9.子程序
proc max{a b}
if{$a > $b} {
set y $a;
} else {
set y $b;
}
return $y;
######调用######
max 2 3