Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26581
  • 博文数量: 19
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 187
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-14 16:24
文章分类

全部博文(19)

文章存档

2015年(19)

我的朋友

分类: 系统运维

2015-11-10 10:42:12

linux下,可以执行tclsh来进入tcl的编译环境,你将看到一个%的提示符,表示你现在正在tcl的环境中,windows下也类似。

    [ppcorn@localhost ppcorn]$ tclsh

%

    TCLHello world

    和所有的程序一样,我们的第一个程序也是从Hello World开始,首先看看命令行格式下的Hello world

    %puts Hello world

    Hello world

当然,这个仅仅是命令行格式的,作为一个真正的程序,我们不能这么写。

 

第一个程序:Helloworld.tcl

#!/usr/bin/tclsh

puts "Hello world"

用文本编辑器写下该文件,可以保存在任何目录,当然,最好是本人的工作目录,记得使用chmod+x Helloworld.tcl命令给于该文件执行权限,然后使用./Helloworld.tcl执行就可以看到和上面相同的结果了。

[ppcorn@localhost ppcorn]$ ./Helloworld.tcl

Hello world

对于任何的tcl文件,第一行必须是类似于#!/usr/bin/tclsh的,指定了脚本语言编译器的位置,这个和perlsh等脚本语言是完全一致的。

putsTCL中的标准输出函数,任何输出都使用puts来完成。

可以把字符窜写在双引号””中间,也可以写在大括号{}之间,puts都会输出整个字符窜,对于””{}的不同,等一会说明。

程序和运行结果如下

[ppcorn@localhost ppcorn]$ cat Helloworld.tcl

#!/usr/bin/tclsh

puts {Hello world}

[ppcorn@localhost ppcorn]$ ./Helloworld.tcl

Hello world

 

TCL中的变量

TCL中,只有一种变量类型,也就是说,这种变量既可以表示数字,右可以表示字符窜,还可以表示数组,等等等等,对于在TCL中使用变量,直接使用如下格式

set 变量名

 

如下面的程序

[ppcorn@localhost ppcorn]$ cat vartest1.tcl

#!/usr/bin/tclsh

set var1 "Hello world"

puts $var1

[ppcorn@localhost ppcorn]$ ./vartest1.tcl

Hello world

 

可以看出,在定义变量的时候,不需要使用$,而在使用该变量的时候,则需要$

下面看第二个程序

[ppcorn@localhost ppcorn]$ cat vartest2.tcl

#!/usr/bin/tclsh

set var1 "Hello world"

puts "$var1"

puts {$var1}

[ppcorn@localhost ppcorn]$ ./vartest2.tcl

Hello world

$var1

第一输出行,我们把变量放在””之间,输出的是变量的值,第二输出行,我们把变量放在{}之间,输出的是变量名本身,这就是上面谈到的使用””{}之间的不同,{}会把里面的内容原封不动的输出,而””会进行变量的替换。

同时,我们也可以看到,使用puts进行输出以后,是换行的,如果想要输出后不换行的话,怎么处理呢?

使用-nonewline参数,如

[ppcorn@localhost ppcorn]$ cat vartest3.tcl

#!/usr/bin/tclsh

set var1 "Hello world"

puts -nonewline "$var1"

puts {$var1}

[ppcorn@localhost ppcorn]$ ./vartest3.tcl

Hello world$var1

 

既然使用set来进行变量的定义,那么unset用来做什么呢?对,用来取消变量的定义。如果在把vartest1.tcl进行修改,可以看到结果。

[ppcorn@localhost ppcorn]$ cat vartest1.tcl

#!/usr/bin/tclsh

set var1 "Hello world"

puts $var1

unset var1

puts $var1

[ppcorn@localhost ppcorn]$ ./vartest1.tcl

Hello world

can't read "var1": no such variable

    while executing

"puts $var1

"

    (file "./vartest1.tcl" line 5)

可以看到在使用了unset以后,var1变量已经不可以访问了,提示没有这个变量。

除了我们定义的变量外,TCL还预定了一些和系统相关的变量,可以直接使用,同时,希望您在定义变量的时候,不要和他们冲突,这些变量是

argc

argv

argv0

embed_args

env

tcl_interactive

tcl_library

tcl_patchlevel

tcl_platform

tcl_prompt1

tcl_prompt2

tcl_version

auto_path

auto_index

auto_noload

auto_noexec

geometry

 

 

 

对于这些预定义变量的用法,在以后接触到的地方再讲。

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