TCL(Tool Command Language)学习(二)-----基本指令

一、控制流if

If(判断条件){

脚本语句

}elseif{判断条件}{

脚本语句

}else {

脚本语句

}

脚本语句的{一定要写在上一行。

二、switch 语句

和 C 语言中中的 switch 语句一样

三、循环指令foreach

语法格式: foreach 变量 列表 循环主体

功能: 从第0个元素开始,每次按顺序取得列表的一个元素,将其赋值给变量,然后执行循环主体一次,直到列表最后一个元素

四、循环控制指令 break

语法格式:break

功能: 结束整个循环过程,并从循环中跳出

五、循环控制指令:continue

功能: 仅结束本次循环,

六、循环控制指令 while

语法格式:while 判断语句 循环主体

功能: 如果判断语句成立(返回值非0),就运行脚本,直到不满足判断条件停止循环,此时while命令中断并返回一个空字符串

七、for循环

语法格式: for 参数初始化 ,判断语句 ,重新初始化参数,循环主体

功能: 如果判断语句返回值非0就进入循环,执行循环主体后,再初始化参数,然后再次进行判断,直到判断语句返回值为0,循环结束

八、过程函数 proc

语法格式:proc 函数 参数列表 函数主体

功能:类似于c语言中的函数,即用户自定义的功能,方便多次调用

九、全局变量/局部变量

全局变量:在所有过程之外定义的变量

局部变量:

对于在过程中定义的变量,因为它们只能在过程中被访问,并且当过程退出时会被自动删除

指令global ,可以在过程内部引用全局变量

十、正则匹配

1、字符匹配

正则表达式的\w,用来匹配一个字母、数字、下划线

正则表达式的\d ,用来匹配一个数字

2、锚位

用来指示字符串当中的开头和结尾的位置,使能够匹配到正确的字符。

其它字符

\s 表示空格

. 表示任意一个字符

十一、正则匹配指令 regexp

语法格式:regexp?swithes?exp string? matchVar? ?subMatchVar subMatchVar ...?

功能: 在字符串中使用正则表达式匹配

switches:

nocase将字符串中的大写都当作小写看待。

exp正则表达式

string用来进行匹配的字符串

matchstring表示用正则表达式匹配的所有字符串

sub1表示正则表达式中的第一个子表达式匹配的字符串

sub2表示正则表达式中的第一个子表达式匹配的字符串

例:

匹配字符串"abs123"

匹配一个以数字开头并且以数字结尾的字符串

捕获变量

通过()可以捕获字符串

例如将字符串"snow is 30 years old"中的30捕获出来

一次捕获多个字符串

将字符串"snow is 30 years old"中的 snow 和 30 一次捕获

十二、文本处理

1、open

语法格式 : open 文件 打开方式 (打开方式r 表示读模式,w表示写模式。)

功能:打开文件

r 只读方式打开。文件必须已经存在。这是默认方式。

r+ 读写方式打开,文件必须已经存在。

w 只写方式打开文件,如果文件存在则清空文件内容,否则创建一新的空文件。

w+ 读写方式打开文件,如文件存在则清空文件内容,否则创建新的空文件。

a 只写方式打开文件,文件必须存在,并把指针指向文件尾。

a+ 读写方式打开文件,并把指针指向文件尾。如文件不存在,创建新的空文件。

2、gets

语法格式: gets fileld 变量名

功能 gets 读 fileld 标识的文件的下一行,并把该行赋给变量,并返回该行的字符数(文件尾返回-1)

3、close

语法格式: close fileld

功能 关闭文件

4、读取文件

逐行进行读取文件,直到读取到最后一行

5、写入文件

读取文件,求出所有Slack值之和。

十三、脚本运行方式

可以将命令写在一个 tcl 脚本中,TCL文件记录TCL脚本程序代码中,以".tcl"为扩展名。

在console窗口中,可以用source指令执行一个TCL脚本。

如下,将需要执行的语句写在"test1.tcl"中,

在console中利用source语句执行该文件,得到如下的的结果

十四、eval

作用是把字符串当作语句来执行。这个命令或者说这种功能的主要用途是拼接语句:有时我们要运行的语句(代码段)不是立刻就能确定的,如果把多个语句的结果存储在多个变量中,就会导致代码繁杂------这种情况下先把代码当作字符串来拼接,拼接完毕后再把字符串当作代码来运行,就可以简化代码。

用法:

eval 参数1 参数2 参数3 ..

eval会将 所有参数 拼接成类似于列表的字符串(与concat命令相同)然后当作代码运行

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习