赞
踩
碎碎念:好久没更新博客了,近来工作需要用到candece家的工具,以及Y家等EDA工具,都是需要读入tcl的配置文件,这里打算爆肝五个小时,学会Tcl语言,以后能在工作终游刃有余。这里会参考一些其他人的博客,本文会在相应的位置列出来。加油OvO
tcl语言是一种可以在linux以及windows下执行的语言,是一种解释执行的脚本语言(Scripting Language)。它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。
这里的tcl的脚本可以包含一个或者多个命令,命令之间必须采用换行符,或者分号分开,TCL的每个命令包含一个或者多个单词,一个单词就是一个命令,单词之间必须采用空格或者TAB隔开,windows中,我使用的是wish这个软件进行联手,linux与windows是一样的。
命令置换采用【】的形式
这里的\类似和C语言一样,将空格保存了,否则,程序任务空格就是空格
注意:除了\以外,“”和{}夜同样被认为为置换符号,将特殊的字符当作普通的字符,TCL解释器对双引号中的各种分隔符将不作处理,但是对**换行符及$和[]**两种置换符会照常处理。
TCL提供两种变量,其中包括简单变量和数组
名字和值,都可以是任意的字符串
TCL解释器在分析一个变量置换时,只把从$符号往后直到第一个不是字母、数字或下划线的字符之间的单词符号作为要被置换的变量的名字。
数组:赋值方式:
set num(a )
array set {a 1 b 2 }
记住这里一定要使用空格
puts 输出
parray 命名
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。