Tcl 内建命令

更新时间:2023-11-12 16:41:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Tcl简介(二):Tcl内建命令

Tcl内建命令

Built-in commands 内建的命令

Tcl提供了下面描述的内建函数。 ... 表示参数不定

append varName value

append varName value valuevalue ...

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

append i \//i = aaabbbccc

array subcommand arrayName

array subcommand arrayNamearg ...

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

假设:

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

下面是用于遍历的命令 arrrystartsearcharrayName

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

array nextelementarrayNamesearchId

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

array anymore arrayNamesearchId

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

array donesearcharrayNamesearchId 结束该次遍历。

array nextelementarrayNamesearchId 返回下一个元素。

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?arraynextelement a s-1-a 3333

tclsh>array donesearch a s-1-a

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

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 command

catch command varName

用于阻止由于错误而导致中断执行。执行command, 每次都返

回TCL_OK, 无论是否有错误发生。如有错误发生返回1 ,反之返回0 。如果给了varName这被置为错误信息。注意varName是已经存在的 变量。 cd

cddirName

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

close fileId

关闭文件描述符。

concatarg ...

将参数连接产生一个表。 concat a b {c d e} {f {g h}} return `a b c d e f {g h}'

continue

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

eoffileId

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

error message error message info

error message info code

返回一个错误,引起解释器停止运行。info用于初始化全局变 量errorInfo。code被付给errorCode。

evalarg ...

将所有的参数连起来作为命令语句来执行。

exec arg ...

仿佛是在shell下执行一条命令。 exec ls --color

exec cat /etc/passwd> /tmp/a

exit

exitreturnCode 中断执行。

exprarg

处理表达式。 set a [expr 1+1] //a=2

file subcommand name 一组用于文件处理的命令。 file subcommand name arg ...

file atime name

返回文件的最近存取时间。

file dirname name

返回name所描述的文件名的目录部分。

file executable name 返回文件是否可被执行。

file exists name

返回1 表示文件存在,0 表示文件不存在。

file extension name 返回文件的扩展名。

file isdirectory name 判断是否为目录。

file isfile name 判断是否为文件。

file lstat name varName

以数组形式返回。执行lstat系统函数。存储在varName。

file mtime name

文件的最近修改时间。

file owned name

判断文件是否属于你。

file readable name 判断文件是否可读。

file readlink name

都出符号连接的真正的文件名。

file rootname name

返回不包括最后一个点的字符串。

file size name 返回文件的大小。

file stat name varName

调用stat内和调用,以数组形式存在varName中。

file tail name

返回最后一个斜线以后的部分。

file type name

返回文件类型file, directory, characterSpecial, blockSpecial, fifo, link, 或 socket。

file writable name 判断文件是否可写。

flush fileId

立即处理由fileId描述的文件缓冲区。

for start test next body for循环。同C总的一样。

for {set i 1} {$i < 10} {incr i} {puts $i}

foreachvarname list body

类似于C Shell总的foreach或bash中的for..in...

本文来源:https://www.bwwdw.com/article/l2lv.html

Top