- 浏览: 219579 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Wangwei86609:
非常好的规则引擎框架,支持决策树和多线程运行规则https:/ ...
规则引擎 -
hzxlb910:
真详细,收藏哈
maven setting.xml配置说明 -
东方胜:
[b][/b]
脚本语言 Tcl -
345161974:
hyw520110 写道345161974 写道这个Visua ...
Visual Tcl Binary 完整版(完美中文支持) -
hyw520110:
345161974 写道这个Visual Tcl Binary ...
Visual Tcl Binary 完整版(完美中文支持)
lsort -mode list
排列列表。
-mode : -ascii
-dictionary 与acsii类似,只是不区分大小写
-integer 转化为整数再比较
-real 转化为浮点数再比较
-command command 执行command来做比较
open fileName
open fileName access
打开文件,返回一个文件描述符。
access
r w a r+ w+ a+
定义与C中相同。如文件名的第一个字符为|表示一管道的形式来打开。
set f [open |more w]
set f [open /etc/pass r]
proc name args body
创建一个新的过程,可以替代任何存在的过程或命令。
proc wf {file str} {
puts -nonewline $file str
flush $file
}
set f [open /tmp/a w]
wf $f "first line "
wf $f "second line "
在函数末尾可用 return 来返回值。
puts -nonewline fileId string
向fileId中写入string,如果不加上 -nonewline 则自动产生一个换行符。
pwd
返回当前目录。
read fileId
read fileId numBytes
从fileId中读取numBytes个字节。
regexp ?switches? exp string ?matchVar? ?subMatchVar
subMatchVar ...?
执行正则表达式的匹配。
?switches? -nocase 不区分大小写
-indices 返回匹配区间
如:
regexp ^abc abcjsdfh
//return 1
regexp ^abc abcjsdfh a
//return 1
puts $a
//return abc
regexp -indices ^abc abcsdfjkhsdf a
//return 1
puts $a
//return "0 2"
regsub ?switchs? exp string subSpec varName
执行正则表达式的替换,用subSpec的内容替换string中匹配exp的部分。
?switchs? -all 将所有匹配的部分替换,缺省子替换第一个,返回值为替换的个数。
-nocase 不区分大小写。
如:
regsub abc abcabcbac eee b
//return 1
puts $b
//return "eeeabcabc"
regsub -all abc abcabcabc eee b
//return 3
puts $b
//return "eeeeeeeee"
return
立即从当前命令中返回。
proc ff {} {
return friday
}
set a [ff]
//a = "friday"
scan string `format" varname ...
从string中安format来读取值到varname。
seek fileId offset ?origin?
移动文件指针。
origin: start current end
offset从哪里开始算起。
set varname ?value?
设置varname用value,或返回varname的值。如果不是在一个proc命令中则生成一个全局变量。
source fileName
从filename中读出内容传给Tcl解释起来执行。
split string ?splitChars?
将string分裂成列表。缺省以空白为分隔符,也可通过splitChars来设定分隔符
string subcommand arg ...
用于字符串的命令。
string compare string1 string2
执行字符串的比较,按 C strcmp 的方式。返回 -1, 0, or 1。
string first string1 string2
在string1种查找string2的定义次出现的位置。未找到返回-1。
string length string
返回字符串string的长度。
string match pattern string
判断string是否能匹配pattern。pattern是以shell文件名的统配格式来给出。
string range string first last
返回字符串string中从first到last之间的内容。
string tolower string
将string转换为小写。
string toupper string
将string转换为大写。
string trim string
将string的左右空白去掉。
string trimleft string
将string的左空白去掉。
string trimright string
将string的右空白去掉。
tell fileId
返回fileId的文件指针位置。
time command
执行命令,并计算所消耗的时间。
time "ls --color"
some file name
503 microseconds per iteration
trace subcommand
trace subcommand arg ...
监视变量的存储。子命令定义了不少,但目前只实现了
virable。
trace variable name ops command
name 为变量的名字。
ops 为要监视的操作。
r 读
w 写
u unset
command 条件满足时执行的命令。
以三个参数来执行 name1 name2 ops name1时变量的名字。当name1为矢量时,name2为下标,ops为执行的操作。
例如:
proc ff {name1 name2 op} {
puts [format "%s %s %s" name1 name2 op]
}
set a hhh
trace variable a r {ff}
puts $a
//return "a r hhh"
unknown cmdName
unknown 并不是 Tcl 的一部分,当 Tcl 发现一条不认识的命令时会看看是否存在 unknown命令,如果有,则调用它,没有则出错。
如:
#!/usr/bin/tclsh
proc unknown {cwd args} {
puts $cwd
puts $args
}
//下面是一条错误命令
sdfdf sdf sdkhf sdjkfhkasdf jksdhfk
//return "sdfdf sdf sdkhf sdjkfhkasdf jksdhfk"
unset name ...
删除一个或多个变量(标量或矢量)。
uplevel command ...
将起参数连接起来(象是在concat中)。最后在由level所指定的上下文中来执行。如果level是一个整数,给出了在栈中的距离(是跳到其它的命令环境中来执行)。缺省为1(即上一层)。
如:
#!/usr/bin/tcl
proc ff {} {
set a "ff" //设置了局部的a
-------------------------
}
set a "global"
ff
puts $a
//return "global"
再看下一个:
#!/usr/bin/tcl
proc ff {} {
uplevel set a "ff" //改变上一级栈中的a
-------------------------------------
}
set a global
ff
puts $a
//return "ff"
如果level是以#开头后接一个整数,则level指出了在栈中的绝对位置。如#0表示了顶层(top-level)。
a b c 分别为三个命令,下面是它们之间的调用关系,
top-level -> a -> b -> c -> uplevel level
绝对位置: 0 1 2 3
当level为 1 或 #2 都是在 b 的环境中来执行。
3 或 #0 都是在 top-level 的环境中来执行。
upvar ?level? otherVar myVar ?otherVar myVar ...?
在不同的栈中为变量建立连接。这里的level与uplevel中的level是同样风格的。
例如:
#!/usr/bin/tcl
proc ff {name } {
upvar $name x
set x "ff"
}
set a "global"
ff a
puts $a
//return "ff"
while test body
举个例子吧:
set x 0
while {$x<10} {
puts "x is $x"
incr x
}
Built-in variables 内建的变量下名的全局变量是由 Tcl library 自动来管理的。一般是只读的。
env
环境变量数组。
如:
puts $env(PATH)
// return /bin:/usr/bin:/usr/X11R6/bin
errorCode
当错误发生时保存了一些错误信息。用下列格式来存储:
CHILDKILLED pid sigName msg
当由于一个信号而被终止时的信息。
CHILDSTATUS pid code
当一个子程序以非0值退出时的格式。
CHILDSUSP pid sigName msg
当一个子程序由于一个信号而被终止时的格式。
NONE
错误没有附加信息。
UNIX errName msg
当一个内核调用发生错误时使用的格式。
errorInfo
包含了一行或多行的信息,描述了错误发生处的程序和信息。
发表评论
-
Tcl 基础知识精华20句
2011-03-30 09:47 1434最近在巩固Tcl的基础知 ... -
tcl 字符串操作 替换
2011-03-30 09:47 5673CL:字符串命令 有一个关于TCL的哲学探讨:TCL语法中的 ... -
Tcl/Tk--文件操作
2011-03-29 17:41 2775wikibook上的文章很有水平,特翻译出来,晒晒。(译自wi ... -
tcl中如何产生随机数
2011-03-25 14:27 2334[前言] 亂數產生器在NS2中是非常重要的, ... -
TCL 取时间、格式化时间
2011-03-25 14:03 3729clock seconds 取一个整型值 用命令可以格式化时 ... -
Visual Tcl Binary 完整版(完美中文支持)
2011-03-22 17:24 1928Visual Tcl Binary 是我为可视化开发工具 Vi ... -
windows tcl/tk安装(塔卡)
2011-03-22 17:15 3457在Windows中,最简单的方 ... -
ASED Tile for Linux/Windows 正式发布。
2011-03-22 16:42 1369ASED Tile 项目主页: http://co ... -
正式发布 Visual Tcl Binary 1.6.1 加强版
2011-03-22 16:41 1231Visual Tcl Binary 1.6.1 版 ... -
Tcl/Tk 开发者的常备编程工具
2011-03-22 16:38 2639工欲善其事,必先利其器”,选择正确的工具,可以让 Tcl/Tk ... -
Tcl/Tk 在 Windows XP 系统中的 pixmap 错误。
2011-03-22 16:36 975Tc/Tk,Ubuntu 7.04,中文缺字 在程序 ... -
Tcl/Tk Web Browser Plugin v3
2011-03-22 16:35 1064相信大家一定非常熟悉 Java Applet,许多网页的特效就 ... -
如何将 *.tcl *.tbc 文件转换为 Linux/Windows 二进制可执行文件。
2011-03-22 16:32 3209=============================== ... -
Visual Tcl Binary for Linux/Windows 完整版发布。
2011-03-22 16:27 1424Visual Tcl Binary 项目主页: http ... -
tcl 小技巧
2011-03-21 14:51 9311,expr 【expr arg ?arg ...?】可以有一 ... -
Tcl语言cmdline包
2011-03-21 14:51 1384Cmdline包主要用来处理命令行输入。 getopt ... -
Tcl语言包搜索机制
2011-03-21 14:51 1058“pkg_mkIndex”是一个Tcl命令,它用来建立包索引, ... -
Tcl语言自动加载机制
2011-03-21 14:49 1150“pkg_mkIndex”是一个Tcl ... -
tcl/tk/expect(转)
2011-03-21 14:49 962Tcl pronounced &quo ... -
Tcl编程简介(五)
2011-03-21 14:42 1009Error命令 error message ...
相关推荐
【TCL编程简介】 TCL,全称Tool Command Language,是一种功能强大的通用脚本语言,其发音为“tickle”。TCL的特点在于它的简洁语法和高度可扩展性,使其不仅适用于发布命令给交互式程序,如文本编辑器、调试器和...
TCL编程初步(学习TCL语言)
标题与描述概述的知识点主要集中在TCL脚本的基础用法及编程方法上,以下是对这些知识点的详细解析: ### TCL脚本基础 #### 1. 基本语法与结构 TCL(Tool Command Language)是一种强大的脚本语言,特别适用于快速...
Tcl_TK编程权威指南是一本全面介绍Tcl(Tool Command Language)及Tk图形用户界面工具包的编程书籍,由John Ousterhout教授设计并编写。Tcl是一种脚本语言,可以被轻松地嵌入到应用程序中,与C语言相比,Tcl的语法...
《TCL脚本语言编程》这本书可能是为初学者设计的,旨在帮助读者掌握TCL的基础知识和应用技巧。 TCL的核心特性包括简洁的语法、动态类型和内置的字符串处理能力。其语法结构相对简单,使得学习曲线较平缓。例如,...
#### 一、TCL/Tk简介 TCL(Tool Command Language)是一种解释型的脚本语言,以其简洁、高效的特点受到开发者的喜爱。Tk则是与TCL紧密相连的一个图形用户界面工具包,主要用于创建跨平台的GUI应用。TCL/Tk由John K....
这些基础知识构成了TCL编程的基石,无论你是初学者还是有一定经验的开发者,都能从中受益。 expect部分是本书的重点。通过expect,你可以编写脚本来模拟用户与命令行界面的交互,例如自动应答程序提示、等待特定...
在提供的资源中,"TCL脚本语言编程.pdf"可能涵盖了上述的语法和编程实践,"Tcl语言教程.pdf"可能深入讲解了TCL语言的高级特性,而"tcl.pdf"可能包含TCL的特定应用场景或扩展库的介绍。通过这些教程,你可以系统地...
### TCL编程核心知识点详解 #### 一、TCL概述与特点 TCL(最初被称为“工具命令语言”,即Tool Command Language)是由John Ousterhout创建的一种强大的脚本语言。随着时间的发展,虽然“工具命令语言”的含义已经...
描述与标签中的重复提及“TCL脚本语言编程.pdf”,暗示了这份文档可能是关于TCL编程的详细介绍或教程,旨在帮助读者掌握TCL语言的基础知识、高级特性以及实际应用案例。由于文档的具体内容未能完全展示,我们可以...
**TCL脚本语言编程** TCL(Tool Command Language)是一种简单、易学且功能强大的脚本..."TCL脚本语言编程.pdf"这份资料应包含了TCL的详细教程,包括基础概念、语法特性、实例演示等,对学习和掌握TCL编程非常有帮助。
### TCL与TK简介 TCL(Tool Command Language)是一种脚本语言,以其简洁、高效和跨平台特性而受到欢迎。它最初由John Ousterhout在1988年开发,旨在简化GUI应用程序的创建过程。TCL易于学习,具有强大的文本处理...
### TCL脚本语言编程知识点详解 #### 一、TCL基本知识 - **TCL简介**:TCL(Tool Command Language)是一种轻量级的解释型脚本语言,以其简单易学、...希望这份详尽的知识点能够帮助大家更好地理解和掌握TCL编程。
《TCL\TK编程权威指南》是一本深入探讨TCL和TK编程语言的经典教程,它以其详尽且易于理解的内容,深受程序员们的喜爱。TCL(Tool Command Language)是一种脚本语言,而TK则是一个与TCL紧密集成的图形用户界面(GUI...
### TCL Socket 编程实例详解 #### 一、TCL Socket 概述 TCL(Tool Command Language)是一种脚本语言,广泛应用于快速原型开发、脚本编程等场景。TCL支持网络通信功能,其中最重要的一项是Socket编程,用于创建...
### 面向对象的TCL编程——ITCL [incr TCL] #### 一、概述 在当前快速发展的软件市场中,开发周期短的应用程序往往更有可能取得成功。Tcl/Tk提供了一个高效的交互式开发环境,能够以惊人的速度构建图形用户界面...
#### 二、Tcl编程语言简介 ##### 2.1 历史背景与特点 - **历史背景**:Tcl由John Ousterhout在1980年代末期创建。最初是作为一个小型脚本来使用的,但随着时间的发展,它逐渐演变成为了一种功能完备的编程语言。 -...
本书共分为55章,依次详细讲述了 Tcl基础、Tcl高级特性、TK基础、TK组件、TK详解、C语言编程、各版本之间的差异等方面的知识,并通过大量实例,生动翔实地向读者介绍了 Tcl/Tk编程,是读者掌握Tcl/Tt的必备参考书。...
这篇教程是为初学者设计的,旨在引导你了解TCL编程的基础知识。 首先,让我们从TCL的结构开始。TCL脚本由一系列命令组成,每个命令由一个或多个单词构成。这些单词可以是简单的标识符,也可以包含特殊字符。在TCL中...