TCL学习笔记(持续更新)

前言:

TCL(tool common language)是一种通用工具语言,很多eda tool都支持tcl,学习了解一些tcl基本语法还是很有必要的。

1:基础概念

     解释器: #!/usr/bin/tclsh

     打印: puts -> puts "hello ,world"

     注释: 单行注释用 # ,多行可以用: if 0 {xxx}

     语法结构:commandName argument1 argument2 ... argumentN

     数据类型:只支持string类型

     变量类型:支持变量和数组,都不用提前申明,直接使用

TCL解释器对一个命令的求值分为了:分析和执行
分析:把命令分解为独立的单词,进行必要的置换动作。
执行:把第一个单词当做命令,查看这个命令是否有定义,有的话激活其对应的内部动作。

2: 基本语法操作 

2.1 替换

  1. 命令替换:下面是一个简单的例子,功能是相加:

    #!/usr/bin/tclshputs [expr 1 + 6 + 9]//输出结果为:16

    当TCL解释器遇到字符 [ ,它就会把随后expr作为一个命令名,从而激活expr对应的动作,如果我们去掉[],TCL会报错,正常情况下只把命令行中的第一个单词作为命令,注意[]中必须是一个合法的TCL脚本,长度不限。[]中的脚本的值为最后一个命令的返回值。

  2. 变量替换:在变量名之前加上$,功能是返回该变量的内容。

    #!/usr/bin/tclshset a 3
    puts $a
  3. 反斜杠替换:很多其他脚本语言中也有,其实就是 转义
    #!/usr/bin/tclsh
    set a 3
    puts "\$a=$a"//结果:$a=3

    2.2 条件控制

              1. if  

if {boolean_expression} {# statement(s) will execute if the boolean expression is true
} else {# other statement(s)
}
也可以嵌套:
if {boolean_expression 1} {# Executes when the boolean expression 1 is true
} elseif {boolean_expression 2} {# Executes when the boolean expression 2 is true 
} elseif {boolean_expression 3} {# Executes when the boolean expression 3 is true 
} else {# executes when the none of the above condition is true 
}

需要注意的是:else/elseif必须要和if的后面一个}在同一行。

            2. switch

switch switchingString {matchString1 {body1}matchString2 {body2}
...matchStringn {bodyn}
}

2.3 循环

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

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

相关文章

delvewheel进行repair时报Unable to find library: msvcr100.dll【已解决】

问题描述 我自己编译了我下载的一个开源软件pyuvc,编译出whl文件后使用delvewheel进行repair,也就是把它依赖库dll库拷贝到whl文件中。等效的的执行命令是: python.exe -m delvewheel repair -w .\wheelhouse\ dist\pupil_labs_uvc-1…

大图热控授权世强硬创代理,液冷板产品可解决超高热流密度散热难题

受益于下游产业发展,液冷板(又称为“水冷板”)市场需求持续上升,行业发展迅速。国内企业为了在竞争激烈的市场中生存,也在不断开发新的散热技术及产品,苏州大图热控科技有限公司便是其中之一。 为将液冷产…

Java大数据hadoop2.9.2搭建伪分布式yarn资源管理器

1、修改配置文件 cd /usr/local/hadoop/etc/hadoop cp ./mapred-site.xml.template ./mapred-site.xml vi mapred-site.xml <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property> &l…

(02)半导体前道制程工艺概览

01、半导体制程工艺概览 在第一篇的最后,我们说到金属氧化物半导体场效应晶体管(MOSFET)的平面式结构让人们可以在晶圆上同时制造出好几个MOSFET。且与第一代晶体管BJT不同,MOSFET无需焊接过程。本期内容就让我们来详细了解一下具体的制程工艺。 为方便讲解,我们先来看一…

蓝牙技术在智能交通系统中的革新与应用

随着科技的不断进步&#xff0c;蓝牙技术已经成为智能交通系统中的一项关键技术。其无线连接和低功耗的特性为交通管理和车辆通信提供了新的解决方案。本文将深入探讨蓝牙技术在智能交通系统中的应用&#xff0c;以及其对交通效率、安全性和用户体验的积极影响。 1. 蓝牙技术在…

下载知虾数据分析软件:优化店铺运营、提高转化率的利器

在如今竞争激烈的电商市场中&#xff0c;对销售数据、流量以及买家行为等关键指标的监控和分析至关重要。Shopee平台为卖家提供了一个内置的在线数据分析工具——“Shopee Analytics”&#xff08;知虾分析&#xff09;&#xff0c;让卖家能够轻松实现对店铺运营的优化、提高转…

海昌海洋公园用泛微千里聆RPA智能采集、识别、分析网络数据,助力优化运营服务

海昌海洋公园控股有限公司&#xff08;以下简称“海昌海洋公园”&#xff09;是中国知名的主题公园和配套商用物业开发及运营商。经过近二十年发展&#xff0c;凭借行业优秀的极地海洋动物保育技术&#xff0c;公司将其业务模式逐步推广到核心城市&#xff0c;展开了海昌海洋公…

Linux学习记录——삼십사 https协议

文章目录 1、了解https1、加密解密2、加密方式3、数据摘要 2、HTTPS的解决方案1、只用对称加密2、只用非对称加密3、双方都用非对称加密4、非对称加密 对称加密 3、CA证书4、最终HTTPS方案 1、了解https HTTPS也是一个应用层协议&#xff0c;在HTTP基础上加入了一个加密层。H…

教育src漏洞挖掘-2023-白帽必挖出教程

0、关于为什么要写这篇文章 作为刚接触渗透的小伙伴儿肯定都想快速挖到漏洞提交平台获取注册码&#xff0c;或者想获取更多积分换取证书&#xff0c;这篇文章就是为了帮助各位师傅们快速上手挖取教育src 1、开始前准备 每一次成功的渗透&#xff0c;都有一个非常完备的信息搜…

胎牛血清,预计2028年达到27.5亿美元以上

胎牛血清是从胎牛的脐带或心脏中提取出的一种高营养的医疗用品。本文将从全球市场和中国市场两方面进行分析其发展趋势。 全球市场分析&#xff1a;胎牛血清在药品和生物科技行业中有着广泛的应用&#xff0c;如细胞培养、疫苗制备、诊断试剂盒和治疗药物等。随着生物技术的不断…

TimeUnit用法

TimeUnit用法 主要作用 时间颗粒度转换延时TimeUnit是java.util.concurrent包下面的一个类&#xff0c;表示给定单元粒度的时间段 常用的颗粒度 TimeUnit.DAYS //天 TimeUnit.HOURS //小时 TimeUnit.MINUTES //分钟 TimeUnit.SECONDS //秒 TimeUnit.MILLISECONDS //毫秒 Tim…

网络安全协议:保护数据和信息的关键

引言&#xff1a; 随着互联网的普及和发展&#xff0c;网络安全问题日益突出。为了保护网络中的数据和信息免受未经授权的访问、篡改和破坏&#xff0c;网络安全协议应运而生。本文将介绍几种常见的网络安全协议&#xff0c;包括SSL/TLS、IPsec、SSH和HTTPS&#xff0c;并探讨它…

怎么测试电源负载瞬态响应?具体步骤是什么?

负载瞬态响应(Load Transient Response)指的是电路或系统在负载发生瞬态变化时,输出电压或电流出现的瞬时变化的情况。 电源负载瞬态响应测试是评估电源在负载变化时性能表现的一种重要方法。在实际应用中&#xff0c;电源负载的变化是不可避免的&#xff0c;因此准确评估电源的…

insert into select简单数据迁移-postgresql

简单记录下去年11月的小数据迁移 前提 有个表customer_info里边大概有1千多万数据&#xff0c;分了四个店铺&#xff0c;其中三个店铺的数据是已经不再变动了&#xff0c;只有一个店铺的数据还在更新&#xff0c;所以当时就想把其他三个店铺的数据迁移出去&#xff0c;只留变动…

日常开发记录

x86与arm架构区别&#xff1a;x84复杂指令集&#xff1b;arm精简指令集 ubuntu如何以root登陆? ubuntu16.04使用root用户登陆_ubuntu16.04 root-CSDN博客 ubuntu20.04 使用root用户登录系统_ubuntu root-CSDN博客

Golang里空结构体struct{}的介绍和使用

s t r u c t struct struct是 G o l a n g Golang Golang里的关键字&#xff0c;用于定义结构类型 比如 type Student struct{id intname string }struct{}是有 0 0 0个元素的结构体. struct{}{}表示类型struct{}的值为空{} 1.性质 1.1不占用内存 大小为 0 0 0&#xff0c;…

大创项目推荐 深度学习卷积神经网络的花卉识别

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…

windowns虚拟机(jdk下载 tomcat下载 mysql下载 发部署项目)

1.启动服务&#xff08;远程连接&#xff09; 2.查看ip 3.右击计算机属性&#xff0c;高级设置&#xff0c;允许远程连接 4.打开本机远程连接&#xff08;administrator&#xff09; 5.jdk下载 将压缩包复制到桌面&#xff0c;双击安装 管理员身份打开黑窗口 输入Java查…

开启物联网的魔法之门 - 深入探索发布/订阅模式

文章目录 MQTT 发布/订阅模式MQTT 发布/订阅中的消息路由MQTT 与 HTTP 请求响应MQTT 与消息队列Paho Java 使用示例结语 MQTT 发布/订阅模式 发布订阅模式&#xff08;Publish-Subscribe Pattern&#xff09;是一种消息传递模式&#xff0c;它将发送消息的客户端&#xff08;发…

如何使用可视化管理工具DockerUI远程管理docker容器

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…