Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Tcl编程简介(五)之内置命令集

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]
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来设定分隔符



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Tcl编程简介(四)之内置命令集   下一篇:Tcl编程简介(六)之名字空间

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章