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命令相同)然后当作代码运行

相关推荐
CSDN_PBB3 小时前
[STM32 - 野火] - - - 固件库学习笔记 - - - 十五.设置FLASH的读写保护及解除
笔记·stm32·学习
鸡啄米的时光机7 小时前
vscode的一些实用操作
vscode·学习
Kai HVZ7 小时前
《深度学习》——调整学习率和保存使用最优模型
人工智能·深度学习·学习
守护者1708 小时前
JAVA学习-练习试用Java实现“使用Apache Ignite对大数据进行内存计算和快速筛查”
java·学习
weixin_502539859 小时前
rust学习笔记2-rust的包管理工具Cargo使用
笔记·学习·rust
web_1553427465612 小时前
【合集】Java进阶——Java深入学习的笔记汇总 & 再论面向对象、数据结构和算法、JVM底层、多线程、类加载、
java·笔记·学习
伊一大数据&人工智能学习日志13 小时前
深度学习04 数据增强、调整学习率
人工智能·深度学习·学习·机器学习
执念斩长河13 小时前
vue学习笔记
vue.js·笔记·学习
咔叽布吉13 小时前
【前端学习笔记】Webpack
前端·笔记·学习
瑶光守护者14 小时前
【深度解析】图解Deepseek-V3模型架构-混合专家模型(MoE)
人工智能·笔记·深度学习·学习·架构