sdk脚本语言 DEA05--TCL脚本语言(一)

11/28 09:10:58 来源网站:268辅助卡盟网

sdk脚本语言 DEA05--TCL脚本语言(一)

这里写目录标题

Tcl (Tool Command Language)是一种解释性的脚本语言,包含了少量的语法规则和一个核心命令集合,支持变量、过程和控制结构。用 Tcl编写的程序可以在Linux/ Unix, Windows 和 Apple Macintosh 等操作系统下运行,,在Linux/Unix中,默认安装了Tcl命令解释器,可以直接使用T c l。通常用T c l 进行快速原型、脚本、图形用户界面 GUI (Graphics User Interface)和测试任务等的编程。本节简单介绍Tcl 语言的基本命令、控制结构和编程,它们是后续编写 EDA 工具的脚本的基础。 一、 Tcl基础 1.1 TCL命令格式

Tcl 格式:

command arg1 arg2...

其中命令(command ) 是内建命令或tcl的一个过程,命令和变元,变元和变元之间用空格隔开;分号或换行终止一条命令。一条命令是一行,也可以多条一行(此时用;隔开。

示例:

%puts "hello world"
hello world
% puts {hello world};
hello world
#其中%是命令提示符
#注释#前必须要有 ; ;
#因为tcl语言中命令与参数都是以空格隔开的,所以字符串中有空格时要用” ”或{ }括起来。

1.2 TCL脚本文件和Sourse命令

Tcl命令可以单条命令执行,也可以把多条命令形成一个脚本文件,通过source命令执行。

格式:
%source *.tcl
示例:
source test.tcl

1.3 变量赋值与替换 1.3.1 赋值与释放

Tcl变量类型只有字符串一种,使用前不需要声明。通过set命令实现。赋值后变量就占据了内存空间;通过unset命令取消变量定义,并且释放内存空间;

格式:
set valuename value
unset valuename
示例:
% set a 1
1
% set b $a
1
% puts "b = $b"
b = 1

1.3.2 替换

Tcl中包含三种变量替换方式:变量替换、命令替换[]、反斜杠替换。

$替换

示例:
% set a 1
1
% set b $a
1
% puts "b = $b"
b = 1

[]替换

示例:
% set a [expr 1 + 2]
3

\替换

示例:
% set a \$;
$
% set b $a;
$
#\后不要跟空格。

特殊替换:

如下图所示,glob 命令返回的是符合***.v形式的文件名列表,例如a.v b.v c.v,然而,整个文件名列表是作为一个参数传递给file delete的,file delete 会因为找不到名为a.v b.v c.v的文件而失败。要想 file delete 正常工作,glob 的结果必须被正确分隔为多个单词。可以通过参数展开来完成这一任务。

如果一个单词以字符串{* }开头,之后紧接者非空白字符,Tcl会移除开头的{*}**,把该单词的剩余部分作为含有单词分隔符的语句进行解析与替换。在替换之后,Tcl会再次解析这些单词,但不进行替换,校验确定它们的确是一个或多个语法完整的单词。如果校验通过,这些单词会被独立地加入命令行进行处理:否則,Tcl会报语法错误。因此:

file delete {*} [glob *.v]
#在由Tcl解释器进行解析和参数展开后,与下面这条语句相同:
file delete a.v b.v c.v

1.4 引用

Tcl语言提供了一些方法,阻止解析器对$和分号等特殊字符进行处理,这些方法称之为引用。常用的引用包括:

    暂无相关资讯
sdk脚本语言 DEA05--TCL脚本语言(一)