Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm=1001.2014.3001.5482
Tcl语言是一种脚本语言,类似于Bourne shell(sh)、C shell(csh)、Bourne-Again Shell(bash)等UNIX shell语言。Shell程序主要作为胶水缝合其他程序,但也保证了足够的可编程性(变量,控制流和过程),这使得构造复杂的脚本成为了可能,正确使用脚本语言能大大提升工作效率。
Tcl语言有别与其他shell语言的性质在于,它非常轻量化且易于嵌入进应用程序,并作为应用程序的命令语言尤其是EDA软件(例如Design Compiler, PrimeTime, VCS等)。用户也可以编写Tcl脚本用于执行一系列基本操作,满足用户的使用需求。
Tcl命令
Tcl是一个基于字符串的工具命令语言(Tool Command Language)。“基于字符串”这个性质,将会在后面的学习中逐步体会。一条命令会执行一些操作,例如输出一串字符串,计算一个数据表达式...。Tcl将一切映射成命令的形式,即使变量赋值和过程定义也不例外,而只添加了少量正确调用命令所需的语法,然后将所有底层细节交给命令本身实现。
Tcl语言的基础语法是:
command arg1 arg2 arg3
command既可以是内建命令,也可以是一个Tcl过程。空白(空格、水平制表符)被用来分隔命令和参数,注意不可以直接用换行符分隔(这和C、C++不一样,和其他解释性语言类似),否则会报错,除非先使用\转义换行符。换行符在Tcl中表示一条命令的结尾,另一个表示结尾的符号是引号(;)。在执行一条命令前,Tcl解释器会首先进行命令参数中的替换和执行嵌套调用。
Hello World!
puts stdout {Hello, World!}Hello, World!
在这个例子中,命令是puts,他接受两个参数:一个I/O流标识符和一个字符串。puts命令将字符串输出到指定I/O流并在末尾加上换行符。这里有两点值得强调:
- 参数是由命令解释的。在上例中,stdout用于标识标准输出流,这被包括puts在内的许多I/O命令所默认。类似地,stderr用于标识标准错误流,stdin用于标识标准输入流。
- 大括号被用来将一组词构成一个参数,因此puts命令接受字符串Hello, World!作为它的第二个参数,在这里使用大括号是必要的,因为这个字符串中间有空白(空格)。
大括号是Tcl解释器的语法,它并不是参数的一部分,在参数被传递给命令前会删除。它的作用是将所有字符组织在一起,包括换行符和递归的括号直到找到一个对应的右括号。Tcl也使用双引号组织字符。下面展示了一些大括号的使用。
#用于输出有空白的字符串
puts stdout {abc def}abc def#甚至可以接受字符串里有换行符
puts stdout {abc
def}abc
def#如果使用\转义换行符,则字符串不包含换行符但会有一个空格
puts stdout {abc\
def}abc def#对于上面这些简单的字符串,使用{}与""没有差别