作为一种脚本语言,Tcl具有简单的语法.
一条Tcl命令由空格分割的单词组成. 其中, 第一个单词是命令名称, 其余的是命令参数 .
$符号代表变量的值. 在本例中, 变量名称是foo.
方括号执行了一个嵌套命令. 例如, 如果你想传递一个命令的结果作为另外一个命令的参数, 那么你使用这个符号 . 在本例中, 嵌套命令是以秒为单位的当前时间秒数 .
双引号把词组标记为命令的一个参数. "$"符号和方括号在双引号内仍被解释 .
大括号也把词组标记为命令的一个参数. 但是, 其他符号在大括号内不被解释.
反斜线符号(\) 是用来引用特殊符号. 例如:\n 代表换行. 反斜线符号也被用来关闭"$"符号 , 引号,方括号和大括号的特殊含义 .
注意在给变量赋值时并未使用$符号. 只有在使用变量时才使用$符号.在上个例子中, seconds 变量并不是必须的. 你能使用一句命令打印出当前时间:
Tcl解析Tcl语法是通过以下三步: 参数分组, 结果替换和命令分派.
参数分组. Tcl需要决定怎样组织命令的参数 . 在最简单的情况中, 空格分隔了各参数 . 作为早期规定, 引号和括号使多个单词成为一个参数 . 在上个例子中 , 双引号使多个单词成为puts命令的一个参数.
结果替换. 在参数分组后 , Tcl执行字符串替换. Put命令中, 只是简单地用变量 $foo 的值替换了foo, 用结果替换了括号命令. 替换是在分组之 后 后进行的. 这种次序使特别的值并未使命令结构变复杂.
命令分派. 在结果替换后, Tcl使用命令名称作为关键字 ,查询分派表,调用相应的C程序,来执行命令. . 你也可以在Tcl中开发命令程序. 在参数传递和错误处理中有一些简单的约定.
这里, 大括号用来参数分组, 并没进行任何替换. Tcl语法解析知道 while 命令没有特别的地方,象对待其它命令一样. while 命令的执行程序知道第一个参数是表达式, 第一个参数是多个Tcl命令 . 大括号把它分成两个参数:逻辑表达式控制循环,命令在循环部分 .
本教程是针对那些具有一种或多种编程或剧本措辞阅历的人员设计的。可以在几种平台(包括 Win32 和 MacOS 和几个 *NIX 情形)下行使 Tcl/Tk,本教程是在运转安装了 GNU/Linux 的情形中编写的。
首先,我将引见 Tcl/Tk 并概述该措辞的一小段历史。然后,回想 Tcl/Tk 剧本措辞和正文器的症结功用,谈论该措辞的一些扩展年夜,并研讨几个外行使中的 Tcl/Tk 示例。在本教程中,随文本有一些代码段,偶而还无效果输出的图像(别忘了,Tk 是一种 GUI 对象箱)。
最初,我将集中一些内部成本(包括 Web 上的和印刷物)来匡助您更深切地意见 Tcl/Tk 情形。
Tcl 是“对象掌握措辞(Tool Control Language)”的缩写。Tk 是 Tcl“图形对象箱”的扩展年夜,它供应各类尺度的 GUI 接口项,以利于活络中止初级运用轨范垦荒。
# setrc 中,即可添加我想要的任何功用。
该代码的瑕玷是,它不允许设置配备铺排文件花招有严重缺陷。在按钮按下时,它希冀是这样的花招:单字按钮名,接着是一个空格,接着是实行的敕令(假定有需求,可以有自变量)。不外,从理论上讲,与无组织的用户输出比照,设置配备铺排文件更随意疏忽贯串衔接在一行上。
Expect 是 Tcl 和 Tk 措辞的扩展年夜。Expect 为使交互式轨范的剧本编制自动化,供应了庞杂而功用丁壮夜的接口。其他,Expect 使交互式运用轨范嵌入 GUI 变得随意疏忽。Expect 的垦荒与 Tcl/Tk 的泛起是同时发生发火的,两者今朝的版本都是 send "bilbrey@ 是指社区”)之一(从这些站点链接出去或只需一次或两次跳转),它们通往许多最盛行的
为了弥补那些静态源码,有许多关于 Tcl/Tk 及其扩展年夜的好书。我只能举荐我曾阅读和行使过的一些书本;您可以从您所喜好的实地书商或在线书商获得这些书来阅读它们,从中可以找就职何 20 多个关于 Tcl/Tk 的书名。
我们守候着您对本教程的反应定见和对未来的成长倾向,供应有关一贯在成长中的 Linux 剧本措辞的最新信息。其他,迎接经由进程 与作者直接联络。