相关阅读Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482Tcl是一种脚本语言在很多方面与Bourne shell(sh)、C shell(csh)、Bourne-Again Shell(bash)等UNIX Shell语言有相似之处。Shell脚本通常承担“胶水语言”的角色用来组织和调用其他程序把原本分散的工具串联起来完成更复杂的工作。不过脚本语言并不只是简单地执行外部命令。它通常还提供了足够的可编程能力例如变量、控制流以及过程定义等这使得用户能够编写结构清晰、功能完整的复杂脚本。熟练使用脚本语言往往可以显著提高日常工作的效率。Tcl与其他Shell语言相比有一个很突出的特点它足够轻量并且非常容易嵌入到其他应用程序中。正因为如此Tcl经常被用作应用程序的命令语言尤其是在EDA软件中非常常见例如Design Compiler、PrimeTime、VCS等工具都广泛支持Tcl。用户既可以在工具交互界面中直接输入Tcl命令也可以编写Tcl脚本来自动执行一系列操作以满足实际设计和验证需求。Tcl命令Tcl是一个基于字符串的工具命令语言(Tool Command Language)。“基于字符串”这个性质将会在后面的学习中逐步体会。一条命令会执行一些操作例如输出一串字符串计算一个数据表达式...。Tcl将一切映射成命令的形式即使变量赋值和过程定义也不例外而只添加了少量正确调用命令所需的语法然后将所有底层细节交给命令本身实现。Tcl语言的基础语法是command arg1 arg2 arg3command既可以是内建命令也可以是一个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 #对于上面这些简单的字符串使用{}与没有差别