TCL基础教程——(2)输出和变量

本文介绍了TCL的基础知识,包括如何在Linux和Windows环境下启动TCL编译环境,以及如何编写和运行TCL的Hello World程序。讲解了puts函数用于输出,以及变量的定义和使用,通过set命令赋值,并展示了如何在输出时控制换行。此外,还提到了unset命令用于删除变量,以及TCL中的一些预定义系统变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

       [ppcorn@localhost ppcorn]$ tclsh

%

       TCL的Hello 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的,指定了脚本语言编译器的位置,这个和perl,sh等脚本语言是完全一致的。

puts是TCL中的标准输出函数,任何输出都使用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
 
 
 
 

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

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/hujunfeng/archive/2007/06/19/1658561.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值