TCL脚本技术及用法
- 格式:ppt
- 大小:153.00 KB
- 文档页数:28
系统学习TCL脚本入门教程版本:1. 0作者:次目录1TCL语法 (4)1.1 简介 (4)1.2 运行环境 (4)1.3 本文约定 (4)1.4 参考资料 (4)2引言 (5)2.1 第1课:简单文本输出 (5)2.2 第2课:给变量赋值 (5)2.3 第3课:命令的赋值与置换一 (6)2.4 第4课:命令的赋值与置换二 (7)2.5 第5课:命令的赋值与置换三 (7)2.6 第6课:算数运算 (8)2.7 第7课:文本比较-SWITCH应用 (9)2.8 第8课:数值比较-IF应用 (10)2.9 第9课:WHILE循环 (11)2.10 第10课:FOR循环和INCR (11)2.11 第11课:过程PROC (12)2.12 第12课:过程PROC的参数定义 (13)2.13 第13课:变量的作用域 (13)2.14 第14课:LIST结构 (14)2.15 第15课:LIST项的增删改 (15)2.16 第16课:更多LIST相关 (16)2.17 第17课:字符串函数 (17)2.18 第18课:更多字符串函数 (17)2.19 第19课:修改字符串函数 (20)2.20 第20课:正则表达式 (21)2.21 第21课:更多正则表达式 (22)2.22 第22课:数组 (24)2.23 第23课:更多数组相关 (25)2.24 第24课:文件存取 (28)2.25 第25课:文件信息 (30)2.26 第26课:TCL中的子进程调用-OPEN & EXEC (33)2.27 第27课:命令或者变量是否存在-INFO (34)2.28 第28课:解释器状态-INFO (35)2.29 第29课:过程信息-INFO (36)2.30 第30课:模块化-SOURCE (37)2.31 第31课:建库-UNKNOWN & INFO LIBRARY (38)2.32 第32课:创建命令-EV AL (40)2.33 第33课:在EV AL中应用FORMAT & LIST (40)2.34 第34课:不使用EV AL替换-FORMAT & SUBST (42)2.35 第35课:改变工作目录-CD & PWD (43)2.36 第36课:调试和错误-ERRORINFO & ERROR C ODE & CATCH (44)2.37 第37课:调试-TRACE (45)2.38 第38课:命令行参数和环境串 (46)2.39 第39课:TIME & UNSET (47)2.40 第40课:SOCKET & FILEEVENT & VWAIT (49)2.41 第41课:日期时间-CLOCK (51)2.42 第42课:I/O通道-FBLOCKED & FCONFIG (53)2.43 第43课:子解释器 (56)2.44 第44课:数据库操作 (57)2.45 第45课:函数或过程数组的输入和输出方法 (59)2.46 第46课:INFO的用法 (60)2.47 第47课:多线程 (61)3跋 (75)1TCL语法1.1简介作为脚本语言,tcl语法简单而功能强大。
TCL脚本入门教程```puts "Hello, TCL!" ;# 输出 Hello, TCL!set name "John" ;# 定义一个变量 nameputs "My name is $name." ;# 输出 My name is John.```在这个例子中,第一行的`puts`命令用于输出文本到控制台,第二行的`set`命令用于定义一个变量,第三行的`puts`命令输出带有变量的文本。
在TCL中,变量需要以`$`开头。
- `set`:用于定义和修改变量的值。
- `if`:用于条件判断,根据条件执行不同的代码块。
- `for`:用于循环执行代码块一定的次数。
- `while`:用于在条件满足的情况下循环执行代码块。
- `proc`:用于定义和调用过程(函数)。
- `expr`:用于进行数学运算和表达式求值。
```set age 25set height 1.75set name "Tom"puts "My age is $age."puts "My height is $height meters."puts "My name is [string toupper $name]."```这个例子中,`set`命令用于定义三个变量,`puts`命令用于输出带有变量的文本。
`string toupper`是TCL中的字符串处理命令,用于将字符串转换为大写。
```set file [open "example.txt" r]set content [read $file]close $fileputs $content```这个例子中,`open`命令用于打开一个文件,`read`命令用于读取文件内容,`close`命令用于关闭文件。
tcl点板原理和技巧TCL点板原理和技巧TCL(Tool Command Language)点板是一种常用的编程语言,它具有简单易学、功能强大的特点。
在编写TCL脚本时,掌握点板的原理和技巧是非常重要的。
本文将介绍TCL点板的原理和一些常用的技巧。
一、TCL点板的原理TCL点板的原理可以简单地理解为将一系列命令按照特定的顺序组织起来,形成一个可以重复使用的模板。
当需要执行某个功能时,只需调用该点板即可。
点板的原理主要包括以下几个要点:1. 命令组织:点板是由多个命令组成的,每个命令都有特定的功能。
这些命令可以按照特定的顺序排列,形成一个完整的点板。
2. 参数传递:点板可以接受参数,通过参数的传递可以使点板具有更强的灵活性。
参数可以是字符串、数值等各种类型,具体根据点板的功能而定。
3. 循环结构:点板可以包含循环结构,使得某些命令可以重复执行。
循环结构可以根据条件进行判断,从而决定是否继续执行。
4. 条件判断:点板可以包含条件判断结构,根据条件的不同执行不同的命令。
条件判断可以使点板具有更强的适应性和灵活性。
二、TCL点板的技巧除了了解点板的原理,掌握一些常用的技巧也是非常重要的。
下面介绍几个常用的TCL点板技巧:1. 参数传递技巧:在调用点板时,可以传递不同的参数,从而实现不同的功能。
参数的传递可以通过点板的定义来实现,也可以通过外部变量的方式来传递。
2. 循环技巧:循环结构是点板中常用的技巧之一。
通过使用循环结构,可以重复执行某个命令或一组命令。
循环结构可以使用for循环、while循环等方式实现。
3. 条件判断技巧:条件判断是点板中常用的技巧之一。
通过使用条件判断结构,可以根据不同的条件执行不同的命令。
条件判断可以使用if语句、switch语句等方式实现。
4. 错误处理技巧:在点板的执行过程中,可能会出现一些错误。
为了保证点板的稳定性和可靠性,需要添加错误处理的机制。
可以使用try-catch语句来捕获和处理错误。
基本词法和概念在进一步深入了解TCL的语法之前,弄清楚TCL脚本的几个基本概念以及TCL解释器解释执行一个脚本的基本流程,是很有必要的。
一切都是命令和及其参数TCL脚本语法的本质其实非常简单:1.一个脚本是由一个或多个命令以及其参数顺序排列而成;命令之间用换行字符或者分号分隔;TCL中的一切都是命令及其参数。
2.一个命令语句包括一个命令字以及零个或多个该命令的参数;命令和参数以及参数之间用空格或者Tab分隔;3.如果任何地方出现可以进行置换的操作,那么就会按照规则进行置换;例如下面的一段代码实际上是由三个命令组成的:class CPerson { ;#第一条命令class及其两个参数protected variable m_name ;#成员变量,保护类型,可以被继承protected variable m_sexconstructor {name sex} { ;#构造函数set m_name $nameset m_sex $sex}public method PrintInfo {} { ;#public方法,输出对象信息,可以被继承puts "CPerson [GetInfo]" ;#调用了成员函数GetInfo}public method GetInfo {} {return "name=$m_name; sex=$m_sex" ;#返回对象信息}} ;#第一条命令结束。
CPerson a “Lei Yuhou” Male ;#第二条命令a PrintInfo ;#第三条命令上面代码很长,但是实际上只有三个命令:第一个是class命令,带有两个参数,第一个是类名,第二个是类的定义体;第二个命令是CPerson命令,实际上刚才的class命令在执行之后就定义了一个新的TCL命令,命令名就是我们声明的类名;第三个命令的命令字是a,这是我们刚才创建的对象,实际上CPerson命令在执行的时候又创建了一个TCL命令,其名字就是我们给出的对象名。
TCL基本语法1语言简介TCL缩短工具命令语言的形式。
由加州大学伯克利分校的约翰Ousterhout设计它。
它是一种脚本语言,由其自身的解释器,它被嵌入到开发应用程序的组合。
TCL最初在Unix平台中。
后来移植到Windows,DOS,OS/2和Mac OSX。
TCL非常类似于其他UNIX的shell语言,类似Bourne Shell (Sh), the C Shell (csh), the Korn Shell (sh), 和Perl。
它的目的是提供程序与其他程序,也是作为一个可嵌入的翻译相互作用的能力。
虽然原来的目的是为了使程序能够进行交互,可以找到由Tcl/Tk 编写的完全成熟的应用。
1.1TCL特性TCL的特点如下:1、减少开发时间。
2、功能强大和简单的用户界面工具包整合传统知识。
3、一次编写,随处运行。
它可以运行在Windows,Mac OS X和几乎所有的Unix平台。
4、有经验的程序员很容易上手,因为语言就是这么简单,可以在几个小时或几天学习Tcl就可以搞定。
5、可以轻松地用Tcl扩展现有的应用程序。
另外,也可以包括Tcl的用C,C++或Java 来扩展Tcl,或反之亦然。
6、有一组功能强大的网络功能。
7、最后,它的开源,免费的,可以用于其他无任何限制商业应用。
2基本语法2.1命令结构commandName空格arguments。
每条命令之间通过换行或者;隔开。
例如:#设置变量foo为0set foo 0set bar 1;puts $bar; #设置(set 为一个Tcl命令)变量bar为1,输出(puts也是一个Tcl命令)bar2.2注释使用#注释,不过要注意的是下面的注释是错误的:set foo 0 #设置变量foo为0,这种注释是错误的因为tcl解析器总是认为一条命令应该以换行或者分号结束,其他的在同一行中都认为是参数。
所以正确的应该是:set foo 0#设置变量foo为0,这种注释是正确的set foo 0; #设置变量foo为0,这种注释是正确的3变量定义及基本操作tcl可以定义两种类型的变量:变量和数组。
tcl教程TCL(工具命令语言)是一种脚本语言,主要用于实现自动化工作流程、快速开发小型工具和控制系统等应用。
它具有简单易学、功能丰富以及可移植性好等特点。
本教程将带你从基础开始逐步学习TCL的语法和常用命令,并通过实例演示帮助你快速掌握TCL编程。
1. TCL的安装和运行环境配置首先,你需要下载并安装TCL的最新版本。
在安装过程中,请根据操作系统选择正确的安装文件,并按照向导进行安装。
安装完成后,你可以在命令行界面中输入"tclsh"来启动TCL解释器,并进入TCL编程环境。
2. TCL脚本的基本结构和语法一个TCL脚本通常由一系列的命令组成,每条命令占据一行。
TCL命令以"$"符号开头,如"$command argument1 argument2"。
TCL的注释以"#"符号开头,后面的内容将被忽略。
以下是一个简单的TCL脚本示例:```tcl#!/usr/bin/tclsh# 输出Hello World!puts "Hello World!"```3. 变量和数据类型TCL支持多种数据类型,包括整数、浮点数、字符串、列表和字典等。
你可以使用"set"命令定义一个变量,并使用"$"符号在其他地方引用该变量。
以下是一些例子:```tclset name "Tom"set age 18set pi 3.14159set fruits {apple banana orange}set person(name) "John"```4. 控制流结构TCL提供了常见的控制流结构,如条件语句和循环语句,用于控制程序的执行流程。
以下是一些控制流语句的示例:if语句:```tclif {$age >= 18} {puts "成年人"} else {puts "未成年人"}```while循环语句:```tclset num 1while {$num <= 10} {puts $numincr num}```5. 文件操作TCL提供了一组用于文件操作的命令,如打开文件、读取文件、写入文件和关闭文件等。
tcl中的if跟正则表达式Tcl中的if语句和正则表达式Tcl是一种脚本语言,它具有简单易学、灵活多样的特点,被广泛应用于各类软件开发项目中。
其中,if语句和正则表达式是Tcl中常用的两个功能强大的特性。
本文将针对这两个主题进行详细介绍和讨论。
一、Tcl中的if语句if语句是一种条件判断语句,用于根据给定的条件执行不同的代码块。
在Tcl中,if语句的基本语法如下所示:if {条件} {# 条件成立时执行的代码块} elseif {条件} {# 第一个条件不成立,但第二个条件成立时执行的代码块} else {# 所有条件都不成立时执行的代码块}if语句的条件可以是一个布尔表达式,也可以是一个变量或函数的返回值。
在Tcl中,字符串的非空和非零值都被视为真,而空字符串和零值被视为假。
因此,我们可以使用if语句来判断变量的值是否符合我们的预期,并根据不同的情况执行相应的操作。
下面是一个简单的示例,演示了如何在Tcl中使用if语句:set num 10if {$num > 0} {puts "变量num的值大于0"} elseif {$num < 0} {puts "变量num的值小于0"} else {puts "变量num的值等于0"}在上面的例子中,我们首先定义了一个变量num,并将其赋值为10。
然后使用if语句判断num的值,并根据不同的情况输出不同的结果。
由于num的值为10,所以输出的结果为"变量num的值大于0"。
二、Tcl中的正则表达式正则表达式是一种强大的模式匹配工具,可以用于在字符串中查找和匹配特定的模式。
在Tcl中,我们可以使用正则表达式来进行字符串的匹配和替换操作。
Tcl中的正则表达式使用的是RE库,它提供了一系列的函数和操作符,用于处理字符串的匹配和替换。
我们可以使用if语句结合正则表达式来判断一个字符串是否符合某种模式,并根据不同的情况执行相应的操作。
tcl语言常用命令(最新版)目录1.TCL 语言简介2.TCL 语言常用命令分类3.TCL 语言常用命令示例4.TCL 语言命令的使用技巧5.总结正文1.TCL 语言简介TCL(Tool Command Language)是一种轻量级的脚本语言,主要用于嵌入式系统、测试自动化、网络设备配置等领域。
它的语法简单易学,功能强大,可以快速实现各种复杂的操作。
2.TCL 语言常用命令分类TCL 语言的命令主要分为以下几类:(1)控制结构命令:如 if、else、while、for 等,用于控制程序的执行流程。
(2)变量操作命令:如 set、get、array set 等,用于操作变量及其数组。
(3)字符串操作命令:如 string、substring、trim 等,用于处理字符串。
(4)数学运算命令:如 expr、lset 等,用于实现数学运算。
(5)流程控制命令:如 break、continue、return 等,用于控制程序的执行。
3.TCL 语言常用命令示例以下是一些 TCL 语言常用命令的示例:(1)控制结构命令:```if { $a > $b } {puts "a > b"} else {puts "a <= b"}```(2)变量操作命令:```set a 10set b 20puts "a = $a"puts "b = $b"```(3)字符串操作命令:```set str "Hello, world!"puts "str = $str"puts "substring($str, 0, 5) = $substring($str, 0, 5)"```(4)数学运算命令:```set a 5set b 3puts "a * b = $a * $b"puts "a + b = $a + $b"```(5)流程控制命令:```for { set i 0 } { $i < 10 } { incr i } {puts "i = $i"}```4.TCL 语言命令的使用技巧(1)使用 set 命令为变量赋值时,等号两边不能有空格。
T C L用法祥述一TCL语法1 脚本、命令和单词符号一个TCL脚本可以包含一个或多个命令。
命令之间必须用换行符或分号隔开,下面的两个脚本都是合法的:set a 1set b 2或set a 1;set b 2TCL的每一个命令包含一个或几个单词,第一个单词代表命令名,另外的单词则是这个命令的参数,单词之间必须用空格或TAB键隔开。
TCL解释器对一个命令的求值过程分为两部分:分析和执行。
在分析阶段,TCL 解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换(substitution);在执行阶段,TCL 解释器会把第一个单词当作命令名,并查看这个命令是否有定义,如果有定义就激活这个命令对应的C/C++过程,并把所有的单词作为参数传递给该命令过程,让命令过程进行处理。
2 置换(substitution)注:在下面的所有章节的例子中,'%'为TCL的命令提示符,输入命令回车后,TCL会在接着的一行输出命令执行结果。
'//'后面是我自己加上的说明,不是例子的一部分。
TCL解释器在分析命令时,把所有的命令参数都当作字符串看待,例如:%set x 10 //定义变量x,并把x的值赋为1010%set y x+100 //y的值是x+100,而不是我们期望的110x+100上例的第二个命令中,x被看作字符串x+100的一部分,如果我们想使用x的值'10' ,就必须告诉TCL解释器:我们在这里期望的是变量x的值,而非字符'x'。
怎么告诉TCL解释器呢,这就要用到TCL语言中提供的置换功能。
TCL提供三种形式的置换:变量置换、命令置换和反斜杠置换。
每种置换都会导致一个或多个单词本身被其他的值所代替。
置换可以发生在包括命令名在内的每一个单词中,而且置换可以嵌套。
1) 变量置换(variable subtitution)变量置换由一个$符号标记,变量置换会导致变量的值插入一个单词中。
引言:TCL培训教程(二)作为继TCL培训教程(一)之后的延续,旨在进一步深入介绍TCL脚本语言的各个方面。
本文将通过引言概述、正文内容和总结来详细探讨TCL的高级特性与应用,并提供详细的示例和实践指导。
概述:在本文中,我们将重点介绍TCL中的5个大点,包括TCL脚本的文件操作、正则表达式的使用、错误处理和异常处理、TCL的面向对象编程以及和其他编程语言的互操作性。
每个大点将包含5-9个小点,以便更全面地探讨TCL的各个方面。
正文内容:一、TCL脚本的文件操作:1. 文件读取和写入操作:介绍如何使用TCL脚本读取和写入文件,并讨论文件的打开和关闭操作。
2. 文件操作函数:详细介绍TCL中用于文件操作的常用函数和命令,如文件重命名、文件删除等。
3. 文件路径处理:讨论如何处理文件路径,包括相对路径和绝对路径的转换。
4. 文件权限和属性:介绍如何获取和修改文件的权限和属性信息,以及相关的TCL命令。
5. 文件夹操作:介绍如何操作文件夹,包括创建文件夹、删除文件夹以及遍历文件夹内的文件。
二、正则表达式的使用:1. 正则表达式的基本语法:介绍正则表达式的基本语法和元字符的使用方法。
2. 正则表达式的匹配与替换:详细探讨如何使用TCL的正则表达式进行字符串的匹配和替换。
3. 正则表达式的捕获组:介绍如何使用捕获组来提取正则表达式匹配的子串。
4. 正则表达式的高级应用:探讨正则表达式在TCL中的高级应用,如贪婪匹配、非贪婪匹配等。
5. 正则表达式的性能优化:讨论如何优化正则表达式的性能,避免正则表达式的过度复杂。
三、错误处理和异常处理:1. 错误处理的基本概念:介绍错误处理的基本概念和原则,以及TCL内置的错误处理机制。
2. 错误处理命令:详细介绍TCL中的错误处理命令,如catch、error、return等。
3. 异常处理的基本原则:讨论异常处理的基本原则和最佳实践。
4. 异常处理命令:介绍TCL中的异常处理命令,如try、throw等。
Vivado之TCL脚本语言基本语法介绍TCL脚本语言Tcl(Tool Command Language)是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,而且VIV ADO也提供了TCL命令行。
最近发现TCL脚本貌似比GUI下操作VIV ADO效率高一些,方便一些。
而且最近跟着官网文档做SDSOC的flatform,发现xilinx 官网的文档里都是用TCL命令来完成操作,于是决心学习一下TCL的语法。
应用程序(如VIV ADO)使用Tcl作为它的命令语言的好处:1 Tcl提供了标准语法,一旦用户掌握了Tcl就可以很容易的发布命令给基于Tcl的程序。
2 Tcl实现了很多的功能,使你的工作变得很方便。
3 TCl可作为程序间通信的接口。
命令格式一条Tcl的命令串包含了多条命令时,用换行符或分号来隔开而每一条命令包含了一个域的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它数据类型Tcl只支持一种数据结构:字符串。
所有的命令、命令里的所有的参数、命令的结果、变量全部都是都是字符串。
简单实例:set i 123将123这个字符串赋值给i变量unset i清除变量set i hi将hi这个字符串赋值给i变量set i hi hellohi hello中有空格,所以加引号set i 123;#开始注释注意注释前,要先用分号,把命令结束掉,或者换行注释基本语法和基础命令在VIV ADO中的TCL命令行里,学习这些基本语法(Windows下》开始》所有程序》Xilinx Design Tools 》Vivado xxx 》Vivado xxx Tcl Shell)1》使用$符号引用变量其中puts是打印命令2》使用[]将命令返回值,作为新命令的参数set j 232命令会返回值232新命令就成了set i 232这里稍微复杂一点点的例子:set i a[set j b][set k c]最后的结果就是:j=b ; k=c ; i=abc3》数组数组不需要声明,直接赋值即可,也不必按照顺序来:set i(1)123 ; set i(16)hi当然也支持任意维数的数组:set i(1,2,3)hi引用的时候直接$i(1,2,3)即可parray命令可以打印出一个数组的全部信息:array命令命令格式:array opTIon arrayNameopTIon 是操作选项,有如下可选:name :返回数组的所有元素的名称size :返回数组的长度startsearch :初始化一次遍历,返回一个遍历标识符(searchId),这个searchId在下面用到,(是可以多个遍历同时进行的)下面的命令格式为:array opTIon arrayName searchId-》nextelement :返回数组中下一个元素,如果没有返回空-》anymore :如果接下来还有元素,返回1,否则返回0-》donesearch :结束遍历4》字符串命令string命令命令格式:string opTIon string1 string2option 是操作选项,有如下可选:compare :按照字母的排序方式比较,string1 《,=,》string2,分别返回-1,0,1 match :判断string1和string2是否匹配first :检索string2中第一次出现string1的位置,如果没有出现string1则返回-1last :和first相反trim :从string1中删除开头和结尾的,string2的字符命令格式:string option stringtolower :返回string中的所有字符被转换为小写字符后的新字符串toupper :返回string中的所有字符串转换为大写后的字符串trimleft :,去除string左空白,类似的还有trimrightlength :返回string1的长度range :string range abcdef 1 2,返回输出结果为bcappend命令字符串追加,可以无限拼接set i aappend i b c dputs $ii变量的值就成了abcd,注意append i b c d命令,而不是append $i b c dsplit命令除此之外,expr还能够识别一些函数及其返回值:abs(x)、round(x)、sin(x)、cos(x)等使用方法:expr 表达式6》list列表类似python中的列表,比如:{abc {def {jkl ccc}}}是一个有两个元素的列表abc和{def {jkl ccc}},Tcl中对list的命令有:(首先set l {abc {def {jkl ccc}}},下面实例中将对这个l列表进行操作)需要注意的是:大部分命令都是对$l进行处理,也把就是l的内容字符串取出来,再处理,并不会对l列表的内容造成影响需要注意的是lappend命令,lappend $l abcd是无效的,必须lappend l abcd才能实现列表内容的更新,而且是直接更改列表的内容7》proc自定义函数proc:proc hello {str} {puts hello:$str}需要注意的是,如果不能一行写完,那建议按照如下格式来定义(主要是要将{放到第一行的末尾):第一行:proc+(空格)+函数名+(空格)+{参数}+(空格)+{中间行:逻辑运算最后行:}全局变量global:用于将过程中的局部变量变成外界可操作的全局变量proc hello {} {global xset x hiset i hello}上述代码,执行结果:return命令:proc hello {} {return world}set i [hello]return命令没啥好说的,上述代码的结果是,将i变量赋值为world字符串8》流控制if 流控制这个同样建议按照格式来:第一行:if+(空格)+{表达式}+(空格)+{中间行:逻辑运算第N行:}+(空格)+else+(空格)+{中间行:逻辑运算最后行:}switch流控制例子如下,一目了然:switch 2 {1 {puts 111}2 {puts 222}3 {puts 333}default {puts xxx}}case流控制case abcd in a {puts 111} *bc* {puts 333} default {puts xxx}上述程序对字符串abcd进行判断:条件一:字符串为a条件二:不管字符串的前后字符是啥,只要中间有bc子字符串即可条件三:default9》循环控制foreach循环:假如想要将0,3,2,1按照顺序分别放到上述switch的判决条件(列表)里,输出四个结果,那就需要这个foreach了:foreach i {0 3 2 1} {switch $i {1 {puts 111}2 {puts 222}3 {puts 333}default {puts xxx}}}for循环:TCL的for循环也是很类似C语言的:for {set i 0} {$i 《10} {incr i} {puts $i}初始化i=0,范围i《10 ,循环i=i+1while循环:set i 10while {$i!=5} {puts $iincr i -1}运行的结果,自己就可以想象了10》字符串转为命令eval命令:set a set ; set b i ; set c hello ; eval $a $b $c上述代码就等效于:set i helloeval将字符串的内容,作为命令,执行11》打印输出之前的那个puts命令也是可以打印到命令行,但是,也只是能打印出来而已,而这个format 类似于C中的sprintf(用于格式化输出):format命令:format可以这样用:format %s %d hello 666set i [format %s %d hello 666]scan命令:说到format,刚好一起把scan说了,这两个命令可以看做是相反的一对,前者组合成字符串,后者把字符串拆分后赋值给变量scan 12.34.56.78 %d.%d.%d.%d a b c d将12.34.56.78拆分,并分别赋值给a b c d四个变量,命令返回赋值成功的变量的个数puts命令:puts当然也可以打印到文件中set f [open test.txt w]puts -nonewline $f hello\nputs $f worldclose $fputs -nonewline $f hello\n表示的是强制不换行打印,否则自动追加一个换行符文件系统基本常用操作:gets 》一次读一行文件puts 》写入文件open 》打开文件close 》关闭文件flush 》刷新缓冲区cd命令和shell中的cd一样pwd命令用于查看当前所在的目录open命令打开文件,返回文件描述符命令格式:open 文件名模式,支持6种模式,和其他编程语言中的文件IO,也是很相似的,模式如下:r 模式:打开只读文件(文件必须存在)r+ 模式:打开可读写文件[r+和a+模式可以类比]w 模式:打开只写文件,若文件存在则清空内容;若文件不存在则创建文件。