系统学习TCL脚本入门教程
版本:1. 0
作者:次
1TCL语法
1.1简介
作为脚本语言,tcl语法简单而功能强大。它诞生于80年代初,进入中国的时间也许多年了。不过关于tcl的资料多而杂,一时心血来潮,想到写一篇文章,以例子为中心,系统讲解tcl语法,让技术人员花最少的时间对tcl有个全面而系统的了解,工作上使用时可以速查或参考代码。于是有了本文。
1.2运行环境
多数代码运行在 ActiveTcl8.3.4. 安装以后的windows环境中,只有两个例程运行在unix的环境下。
1.3本文约定
本文为了便于速查和速学,所以每课分成讲解和例子两部分,主要是围绕着例子进行讲解。文字不多。
1.4参考资料
本文主要参考了《TclTutor 2.0 beta4》。
2引言
2.1第1课:简单文本输出
讲解:
1. 注释符号是 # 或者 ;# ,在命令后注释用 ;# ,在行开头两者均可;
2. puts :输出文本,多个单词如被空格或TAB分隔需要使用“”或{} 括起来;
3. 多个命令写在一行使用 ; 间隔。
例子:l
# ok ;# 正确
;# ok ;# 正确
; # ok ;# 正确, 分号和井号之间可以有空格
puts Hello ;# 正确
puts Hello,World ;# 正确,多个单词之间不是被空格或者TAB分隔开
puts Hello World ;# 这行命令运行出错,被空格分隔
puts "Hello, World - In quotes" ;# 注释
puts {Hello, World - In Braces} # 这行命令运行出错,必须使用 ;# 作为注释符号
puts "This is line 1"; puts "this is line 2" ;# 正确,用分号分隔两个命令
puts "Hello, World; - With a semicolon inside the quotes" ;#正确,分号在双引号内,作为字符串一部分
2.2第2课:给变量赋值
讲解:
1.set:给变量赋值,格式为 set var value
例子:l
;# 给变量X赋一个字符串
set X "This is a string"
;# 给变量Y赋一个数字
set Y 1.24
;# 显示X和Y的内容
puts $X
puts $Y
;# 打印一个分隔串
puts "..............................."
;# 打印在一行中,推荐使用双引号
set label "The value in Y is: "
puts "$label $Y"
puts $label$Y
2.3第3课:命令的赋值与置换一
讲解:
1.TCL中命令的赋值分为置换和赋值两个步骤
2.续行符为 \
3.转义符同为 \
4.特殊字符列表:
序号 | 字符 | 输出 | 十六进制 |
1 | \a | 响铃 | \x07 |
2 | \b | 回车 | \x08 |
3 | \f | 清屏 | \x0c |
4 | \n | 换行 | \x0a |
5 | \r字符串操作函数puts | 回车 | \x0d |
6 | \t | 制表符 | \x09 |
7 | \v | 垂直制表符(Vertical Tab) | \x0b |
8 | \ddd | 八进制值 | d=0-7 |
9 | \xhh | 十六进制值 | h=0-9,A-F,a-f |
例子:l
;# Show how a \ affects the $
set Z "Albany"
set Z_LABEL "The Capitol of New York is: "
puts "$Z_LABEL $Z" ;#显示Albany
puts "$Z_LABEL \$Z" ;#显示$Z,被 \ 转义
;# The next line needs a backslash to escape the '$'
puts "\nBen Franklin is on the \$100.00 bill" ;# \n换行; $100前的 \ 必须有,否则会将100作为一个变量,提示出错
set a 100.00
puts "Washington is not on the $a bill" ;# This is not what you want
puts "Lincoln is not on the $$a bill" ;# 显示$100,说明是后结合的,先置换了$a,此处严格的写应该写为 \$$a
puts "Hamilton is not on the \$a bill" ;# 显示$a
puts "Ben Franklin is on the \$$a bill" ;# 显示$100,说明是后结合的,先置换了$a
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论