零基础入门TCL语言(七)

博客围绕Tcl脚本学习展开,涉及参数展开、Tcl注释、返回异常等内容。作者看到网上说Tcl内建全局变量errorInfo有用,运行puts $errorInfo输出其值时却报错,目前Tcl脚本语法学习接近尾声。

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

目录

1  参数展开

2  Tcl注释 

3  返回异常 

4  疑惑


1  参数展开

#我们在当前目录下创建6个以.o结尾的文件夹。
file mkdir a.o b.o c.o d.o e.o f.o

#无效删除操作
file delete [glob *.o]     ;#glob返回的是符合*.o形式的文件名列表,该列表作为一个单词传递给file delete
file delete {*} [glob *.o] ;#{*}后面多了空格符


#有效删除操作
file delete a.o b.o c.o d.o e.o f.o
file delete {*}[glob *.o]    ;#和上一条命令等价,将glob返回的单词用分隔符隔开
eval file delete [glob *.o]  ;#eval的过程是,将单词连接,单词之间用空格隔开,然后把该结果作为Tcl脚本处理

2  Tcl注释 

#Tcl的注释符号为 #,有效注释位置包括两种情况
#第一种,命令的第一个字符
#valid comment

#第二种,命令用分号结束后,再用#开头的字符
puts "Hello Tcl!" ;#valid comment
puts "Hello Tcl!"   #invalid comment
#会报出如下错误:
wrong # args: should be "puts ?-nonewline? ?channelId? string"

#如果注释语句中出现反斜线+换行,则相当于对注释续行
#同样的,如果是反斜线+空格+换行,续行功能失效,第二行相当于一条命令,会报错invalid command name "this"
set a 100
puts $a
#multi-line comment \
this is also valid comment
puts $a

3  返回异常 

#不同的命令产生错误的条件不同
set x y z
#错误如下:
wrong # args: should be "set varName ?newValue?"

puts [expr 2*(5+2)
#错误如下:
missing close-bracket
    while executing
"puts ["

puts [expr 2*(5+2]     
#错误如下:
unbalanced open paren
in expression "2*(5+2"
    (parsing expression "2*(5+2")
    invoked from within
"expr 2*(5+2"
    invoked from within
"puts [expr 2*(5+2]"

4  疑惑

看到网上说Tcl内建的全局变量errorInfo十分有用,可用puts $errorInfo输出这个变量的值。

但是我运行后报错,不知所以然。

puts $errorInfo
#错误如下
can't read "errorInfo": no such variable
    while executing
"puts $errorInfo"

到这,Tcl脚本的语法就学的差不多了!加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值