Tcl语言快速学习
创始人
2025-05-30 14:51:06

碎碎念:好久没更新博客了,近来工作需要用到candece家的工具,以及Y家等EDA工具,都是需要读入tcl的配置文件,这里打算爆肝五个小时,学会Tcl语言,以后能在工作终游刃有余。这里会参考一些其他人的博客,本文会在相应的位置列出来。加油OvO

Tcl语言是什么

tcl语言是一种可以在linux以及windows下执行的语言,是一种解释执行的脚本语言(Scripting Language)。它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。

1.语法

这里的tcl的脚本可以包含一个或者多个命令,命令之间必须采用换行符,或者分号分开,TCL的每个命令包含一个或者多个单词,一个单词就是一个命令,单词之间必须采用空格或者TAB隔开,windows中,我使用的是wish这个软件进行联手,linux与windows是一样的。
在这里插入图片描述

2 变量置换

在这里插入图片描述

3.命令置换

命令置换采用【】的形式
在这里插入图片描述

4. 反斜杠置换

在这里插入图片描述
这里的\类似和C语言一样,将空格保存了,否则,程序任务空格就是空格

注意:除了\以外,“”和{}夜同样被认为为置换符号,将特殊的字符当作普通的字符,TCL解释器对双引号中的各种分隔符将不作处理,但是对**换行符及$和[]**两种置换符会照常处理。
在这里插入图片描述

变量

TCL提供两种变量,其中包括简单变量和数组

简单变量

名字和值,都可以是任意的字符串
TCL解释器在分析一个变量置换时,只把从$符号往后直到第一个不是字母、数字或下划线的字符之间的单词符号作为要被置换的变量的名字。
在这里插入图片描述

生成变量,读取,修改变量

在这里插入图片描述

数组

数组:赋值方式:
set num(a )

array set {a 1 b 2 }

记住这里一定要使用空格
puts 输出
parray 命名
在这里插入图片描述

相关命令

  • unset :从解释器删除变量,他的后面可以有多个参数,每个参数可以是变量名,也可以是简单变量,可以是数字或者数组元素
  • append :命令将文本添加到一个变量的后面
  • incr :命令把一个变量加上一个整数,incr原来必须是整数
    在这里插入图片描述

表达式

tcl支持常用的数学函数,表达式终得数学函数写法类似与c\c++,多个参数采用,隔开
在这里插入图片描述

回顾

为了更加清楚规则这里通过代码的方式进行回顾

(bin) 1 % # 这里对上面的学习进行复习
(bin) 2 % # 置换
(bin) 3 % set a 1
1
(bin) 4 % set a 1; b 2
ambiguous command name "b": bell binary bind bindtags break button
(bin) 5 % set a 1; set b 2
2
(bin) 6 % set c a+10
a+10
(bin) 7 % set y $a+10
1+10
(bin) 8 % # 变量值换
(bin) 9 % set c [expr $x+100]
can't read "x": no such variable
(bin) 10 % set c [expr $a+100]
101
(bin) 11 % # 置换
(bin) 12 % set msg multiple space
wrong # args: should be "set varName ?newValue?"
(bin) 13 % set msg multiple\ space
multiple space
(bin) 14 % set msg1 "multiple space"
multiple space
(bin) 15 % set msg2 {mulplace space}
mulplace space
(bin) 16 % set msg3 "$a space"
1 space
(bin) 17 %

变量

(bin) 17 % set a 2
2
(bin) 18 % set a.1 3
3
(bin) 19 % set b ${a.1}

数组

•数组是一些元素的集合。TCL数组和普通计算机语言中的数组有很大的区别。在TCL中,不能单独声明一个数组,数组只能和数组元素一起声明。数组中,数组元素的名字包含两部分:数组名和数组中元素的名字,TCL中数组元素的名字(下标)可以为任何字符串。

set day(monday) 1;
set day(tuesday) 2;

• 第一个命令生成一个名为 day 的数组 , 同时在数组中生成 一个名为monday的数组元素,并把值置为1,第二个命令生成一个名为tuesday的数组元素,并把值置为2。

相关命令

• unset这个命令从解释器中删除变量,它后面可以有任意多个参数,每个参数是一个变量名,可以是简单变量,也可以数组或数组元素。

unset a b day(monday)
• append命令把文本加到一个变量的后面

set txt hello; #hello
append txt"! How are you"; #hello! How are you
• incr命令把一个变量值加上一个整数。incr要求变量原来的值和新加的值都必须是整数。

set b 2; incr b 3; #结果为5

相关内容

热门资讯

荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...