Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1453066
  • 博文数量: 297
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3082
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 11:36
文章分类

全部博文(297)

文章存档

2011年(1)

2009年(45)

2008年(67)

2007年(184)

我的朋友

分类:

2009-03-24 13:55:09

Tcl 内置命令

内置的命令

  Tcl提供了下面描述的内置函数。

  .其中: ... 表示参数不定具体有:

  append命令:


append varName value 
append varName value value value ... 

  将那一大堆value附加到varName后面。如果变量不存在,会新建一个。

  例子:


set i "aaa" 
append i "bbb" "ccc" 
//i = aaabbbccc 

  array命令:


array subcommand arrayName 
array subcommand arrayName arg ... 

  这是一组用于向量操作的命令。第二个参数是子命令名。

  假设:


set a(1) 1111 
set a(2) 2222 
set a(three) 3333 

  一下均以它为例子(tclsh在中运行)。

array names arrayName 

  返回一个数组元素名字的列表。


tclsh>array names a 
1 2 three 
array size arrayName 

  返回数组的元素个数。


tclsh>array size a 
3 

  下面是用于遍历的命令

arrry startsearch arrayName 

  初始化一次遍历,返回一个遍历标示(searchId)在下面的命令是中使用。

array nextelement arrayName searchId 

  返回下一个数组中的元素。如果没有返回一个空串。

array anymore arrayName searchId 

  返回 1 表示还有更多的元素。0 表示没有了。

array donesearch arrayName searchId 

  结束该次遍历。

array nextelement arrayName searchId 

  返回下一个元素。


tclsh>array startsearch a 
s-1-a 
tclsh>array nextelement a s-1-a 
1111 
tclsh>array nextelement a s-1-a 
2222 
tclsh>array anymore a s-1-a 
1 
tclsh?array nextelement a s-1-a 
3333 
tclsh>array donesearch a s-1-a 

  注意可以同时并发多个遍历。


break命令
break 

  跳出最近的循环。


case string in patList body ... 
case string patList body ... 
case string in {patList body ...} 
case string {patList body ...} 

  分支跳转。

  例如:


case abc in {a b} {puts 1} default {puts 2} a* {puts 3} 
return 3. 

case a in { 
{a b} {format 1} 
default {format 2} 
a* {format 3} 
} 
returns 1. 

case xyz { 
{a b} 
{format 1} 
default 
{format 2} 
a* 
{format 3} 
} 
returns 2. 

  注意default不可以放在第一位。支持shell文件名风格的匹配符。

catch 命令

catch command varName 

  用于阻止由于错误而导致中断执行。执行command, 每次都返回TCL_OK, 无论是否有错误发生。如有错误发生返回1 ,反之返回0 。如果给了varName这被置为错误信息。注意varName是已经存在的变量。


cd 命令(如shell)
cd dirName 

  转换当前工作目录。如dirName未给出则转入home目录。

close fileId 

  关闭文件描述符。

将参数连接产生一个表。

concat a b {c d e} {f {g h}} 
return `a b c d e f {g h}" 

continue 

  结束该次循环并继续循环。

eof fileId 

  如fileId以结束 返回1,反之返回 0。

阅读(1046) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~