TCL基础知识

TCL基础知识

置换

TCL解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换
TCL置换分为以下三类

变量置换 $
命令置换 []
反斜杠置换 \

用 $ 表示变量置换
TCL解释器会将认为 $后面为变量名,将变量置换成它的值
在这里插入图片描述
用[]表示命令置换
[]内是一个独立的TCL语句
在这里插入图片描述
用\表示反斜杠置换
换行符、空格、[、 $、等被TCL解释器当作特殊符号对待的字符,加上反斜杠后变成普通字符
在这里插入图片描述

用\t表示TAB
用\n表示换行符
在这里插入图片描述
""TCL解释器对双引号中$和[]符号会进行变量置换和命令置换
在这里插入图片描述
{}而在花括号中,所有特殊字符都将成为普通字符,TCL解释器不会对其作特殊处理
在这里插入图片描述
#表示注释
在这里插入图片描述

变量

变量就是某个容器的名称,可以储存一个值。变量的名称在程序运行期间保持不变,但是变量的值通常会不断改变。
定义:set 变量名 变量值
取值:$变量名
在这里插入图片描述
例题:假设我们想打印变量varible,后面跟一个“_1”,会发生什么呢?
在这里插入图片描述

数组

数组:TCL中数组可以储存很多值,通过元素名来进行检索。类似于某件事物(数组名)集中不同属性(元素名),每一种属性有其独立的值
定义:set 数组名(元素名)值
取值:$数组名(元素名)
在这里插入图片描述
使用array指令获取数组信息
在这里插入图片描述

列表

列表是标量的有序集合
定义set列表名{元素1 元素2 元素3 …}
取值$列表名
在这里插入图片描述
TCL中有一系列十分方便的列表操作命名
在这里插入图片描述
concat
语法格式:concat列表1 列表2
功能:将列表1 和列表2合并
在这里插入图片描述
llength
语法格式:llength列表
功能:返回列表中的元素个数
在这里插入图片描述
lindex
语法格式:lindex列表n
功能:返回列表中第n个元素(从0开始计数)
在这里插入图片描述
例题:如何得到列表list1{a b c d e f}的最后一个元素?
在这里插入图片描述
lappend
语法格式:lappend列表新元素
功能:列表末尾加入新元素
在这里插入图片描述
lsort
语法格式:lsort开光列表
功能:将列表按照一定规则排序
开关:缺省时默认按照ASCLL码进行排序
-real 按照浮点数值大小排序
-unique 唯一化,删除重复元素
在这里插入图片描述
例题:如何得到列表list1 { 0 1.2 -4 3 5}中的最小值
在这里插入图片描述

运算

数学运算
a + b
a - b
a * b
a / b
逻辑运算
a <= b
a >= b
a == b
a != b

expr
语法格式:expr运算表达式
功能:将运算表达式求值
在这里插入图片描述
如果想要进行浮点运算,只要将其中任意一个数值,写出浮点形式(有小数点)即可
在这里插入图片描述

控制流

if
语法格式:
if{判断条件}{
脚本语句
}elseif{判断条件}{
脚本语句
}else{
脚本语句
}
在这里插入图片描述

注意,上例中脚本语句的‘{’一定要写在上一行,因为如果不这样,TCL解释器会认为if命令在换行符处已结束,下一行会被当成新的命令,从而导致错位。

foreach
语法格式:foreach变量 列表 循环主体
功能:从第0个元素开始,每次按顺序取得列表的一个元素,将其赋值给变量,然后执行循环主体一次,直到列表最后一个元素。
在这里插入图片描述
在这里插入图片描述
break
语法格式:break
功能:结束整个循环过程
在这里插入图片描述
在这里插入图片描述
continue
语法格式:continue
功能:仅结束本次循环
在这里插入图片描述
在这里插入图片描述
while
语法格式:while判断语句 循环主体
功能:如果判断语句成立(返回值非0),就运行脚本,直到不满足判断条件停止循环,此时while命令中断并返回 一个空字符串
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
for
语法格式:for 参数初始化判断语句重新初始化参数循环主体
功能:如果判断语句返回值非0就进入循环,执行循环主体后,在重新初始化参数。然后再次进行判断,知道判断语句返回值为0,循环结束。
在这里插入图片描述
在这里插入图片描述

过程函数

proc
语法格式:proc函数名 参数列表 函数主体
功能:类似于C语言中的函数。即用户自定义的功能,方便多次调用
在这里插入图片描述
全局变量:在所有过程之外定义的变量
局部变量:对于在过程中定义的变量,因为它们只能在过程中被访问,并且当过程退出时会被自动删除。
指令global,可以在过程内部引用全部变量
在这里插入图片描述

正则匹配

定义:正则表达式是一种特殊的字符串模式,用来去匹配符号规则的字符串
正则表达式的\w,用来匹配一个字母、数字、下划线
正则表达式的\d,用来匹配一个数字
在这里插入图片描述
我们可以用代替重复的量词进行表示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
锚位:用来指示字符串当中的开头和结尾的位置,使我们能够匹配到正确的字符
在这里插入图片描述
在这里插入图片描述
regexp
语法格式:regexp?switches?exp string?matchVar? ?subMatchVar subMatchVar…?
功能:在字符串中使用正则表达式匹配
switches:
-nocase将字符串中的大写都当成小写看待
exp正则表达式
string用来进行匹配的字符串
matchstring表示用正则表达式匹配的所有字符串
sub1表示正则表达式中的第一个子表达式匹配的字符串
sub2表示正则表达式中的第二个子表达式匹配的字符串
例题:如何匹配字符串“abc456”
在这里插入图片描述
例题:如何匹配一个以数字开头并且以数字结尾的字符串?
在这里插入图片描述
捕获变量
通过()可以捕获字符串
例如如何将字符串“Snow is 30 years old”中的30捕获出来?
在这里插入图片描述

在这里插入图片描述

文本处理

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

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

close
语法格式:close fileid
功能:关闭文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

芝麻信用很高,为什么贷款还是被拒了?

之前见过这样一个朋友&#xff0c;他的芝麻信用680以上&#xff0c;借呗额度是2万&#xff0c;但是去申请贷款的时候还是被拒了。看到这很多人可能觉得为什么芝麻信用这么高&#xff0c;贷款还是会被拒了呢&#xff1f;其实芝麻信用不能等同于个人信用&#xff0c;就目前情况来…

Synopsys TCL

Synopsys TCL TCL在EDA工具中的扩展与应用 通过对设计的案例的分析&#xff0c;了解和学习DC获取电路并进行解析的方法 综合软件当中TCL的常见指令 语法格式&#xff1a;get_ports portsName 指令功能&#xff1a;返回design中对应的ports object 语法格式&#xff1a;ge…

只有房子没有工作能贷款吗?

通常来说抵押贷款需要满足几个基本的条件&#xff0c;有可供抵押的房产&#xff0c;有稳定的工作和收入来源&#xff0c;信用良好&#xff0c;如果借人只有房产&#xff0c;没有工作一般是比较难贷到款的。原因是没有工作就没有收入来源&#xff0c;对还款就没有保障。可能有的…

总线及数据传输技术【待完善】

作者&#xff1a;桂。 时间&#xff1a;2017-08-05 14:41:36 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7290224.html 前言 最近的工作内容涉及硬件&#xff0c;三个高频词汇&#xff1a;总线、接口、协议&#xff0c;例如I2C、PCIe、RS-232C、RapidIO&#xff0…

初识TCL

初识TCL 安装TCL编辑器 如果你的电脑上装有编写TCL脚本的软件&#xff08;Vivado等&#xff09;&#xff0c;执行在命令串口输入tcl&#xff0c;点击就行 输入expr 2 2 每一条命令都由一个或多个“单词”组成&#xff0c;单词之间用空格或制表符&#xff08;即空白字符&…

如何看透借款人的隐形负债?

借款人的负债有两种情况&#xff0c;一种是显性负债&#xff0c;另一种是隐性负债。显性负债比较好判断&#xff0c;而隐性负债则比较难以判断。因此如何全面的掌握借款人真实负债是每个信贷员和风控人员都必须掌握的功课。一、显性负债显性负债就是通过材料可以直接看出的负债…

产生脉冲之间的延迟

产生脉冲之间的延迟 题目要求 FPGA产生两个输出脉冲&#xff0c;要求这两个脉冲之间的延迟为0.5ns&#xff0c;请描述你的实现方案 题目分析 1 使用计数器延迟不太可能&#xff0c;FPGA内部逻辑没有一个专用的delaybuffer。 2 IOB (input output block) iodelay。去实现小分辨…

Chipscope使用

作者&#xff1a;桂。 时间&#xff1a;2017-08-07 06:47:31 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7297482.html 前言 Chipscope在FPGA调试中被用来观察内部信号&#xff0c;程序里加入Chipscope相当于有了数字示波器。 本文主要记录Chipscope的基本操作&…

设计FIFO深度

设计FIFO深度 假设FIFO的写时钟为100MHZ&#xff0c;读时钟为80MHZ。在FIFO输入侧写数据侧&#xff0c;每100个时钟&#xff0c;写入80个数据&#xff0c;FIFO读出侧每个时钟读出一个数据。设计合理的FIFO深度&#xff0c;使FIFO不会溢出。 如果读出侧每3个时钟读出1个数据&am…

银行假流水怎么识破?

银行流水作为借款人最有效的还款证明&#xff0c;审核的时候一定要特重视&#xff0c;特别是要注意区分借款人的假流水。&#xff08;1&#xff09;真假流水有哪些特征真流水特征&#xff1a;银行流水能真实的反映借款人的工作或生意情况&#xff0c;能从借款人的生意来往合同中…

模拟电子技术基础笔记

模拟电子技术基础笔记 二极管的特性 1 单向导电性&#xff08;小写是交流&#xff0c;大写是直流&#xff09; 二极管的应用 1、整流二极管 利用二极管单向导电性&#xff0c;可以把方向交替变化的交流电变换成单一方向的脉动直流电。 2、开关元件 二极管在正向电压作用下电阻…

simulink简介

simulink简介 simulink是基于matlab的框图设计环境&#xff0c;可以用来对各种动态系统进行建模、分析和仿真&#xff0c;它的应用领域十分广泛&#xff0c;任何能用数学模型来描述的系统都可以在simulink中进行仿真分析&#xff0c;如:空气动力学、导航制导、通讯、电子、机械…

建模与仿真的流程

建模与仿真的流程 以例子为例 第一步&#xff1a;建立模型&#xff0c;列出输出表达式 第二步&#xff1a;解出输出方程 可以参考&#xff1a;解单位冲激 第三步&#xff1a;在simulink中建立仿真图 ctrlr&#xff1a;表示旋转90 按住ctrl可以引出多条线 点击保存&…

vcs 入门

synopsys vcs 软件是仿真和验证的软件&#xff0c;必须掌握。 vcs 即 verilog compile simulator 支持 verilog, systemVerilog, openvera, systemC等语言&#xff0c;同时也有代码覆盖率检测等功能。 可以合第三方软件集合使用&#xff0c;例如 Vera , Debussy &#xff0c;S…

输入输出及子模块

输入输出及子模块 常用模块库 1 事先规划好功能子系统 2 建立好系统后对系统进行功能划分 在进行动态系统的建模过程中&#xff0c;可以根据需要将模型中比较复杂&#xff0c;或者共同完成某一功能的基本模块&#xff08;低一层次的子系统&#xff09;封装起来&#xff0c;并…

简单模块说明

接地模块&#xff08;Ground&#xff09;和终端模块&#xff08;Terminator&#xff09; 进入接地模块的帮助系统 右击选择帮助 接地模块表示&#xff1a;输入模块中没有值的部分 Ground 模块连接到其输入端口不连接到其他模块的模块。如果您使用具有未连接的输入端口的模块运…

贷款时,如何评估借款人的还款意愿

贷款有一个公式&#xff1a;正常还款还款能力还款意愿。也就是说借款人能不能正常还款&#xff0c;除了借款人的还款能力之外&#xff0c;借款人的还款意愿也有着至关重要的作用。因此贷款审核过程中&#xff0c;对借款人还款意愿的审核是很重要的一个环节&#xff0c;那信贷员…

FPGA时序分析和约束实例

FPGA时序分析和约束实例

数据库设计笔记——概述(一)

数据库数据库&#xff08;DataBase&#xff0c;DB&#xff09;是长期存储在计算机内&#xff0c;有组织的&#xff0c;可共享的数据集合。是存放数据的仓库&#xff0c;并且有组织&#xff0c;有管理。数据库管理系统数据库管理系统&#xff08;Database Management System&…

你应该知道的浮点数基础知识

本文从一个有趣而又令人意外的实验展开&#xff0c;介绍一些关于浮点数你应该知道的基础知识 文章欢迎转载&#xff0c;但转载时请保留本段文字&#xff0c;并置于文章的顶部 作者&#xff1a;卢钧轶(cenalulu) 本文原文地址&#xff1a;http://cenalulu.github.io/linux/about…