2011/12/26
1、替换:
%set x 10 //定义变量x,并把x 的值赋为10
10
%set y x+100 //y 的值是x+100,而不是我们期望的110
x+100
%set y $x+100 //y 的值是10+100,这里x 被置换成它的值10
10+100 //$为变量置换
%set y [expr $x+100] //命令置换- []括起来的TCL 命令及其参数,命令置换会导致某一个命令的所有或部分单词被另一个命令的结果所代替。
110
%set y [expr $x+100;set b 300] //y 的值为300,因为set b 300 的返回值为300
300 //[]中脚本的值为最后一个命令的返回值
set msg multiple\ space //msg 的值为multiple space。\主要用于在单词符号中插入诸如
换行符、空格、[、$等被TCL 解释器当作特殊符号对待的字符
%set x 100
100
%set y "$x ddd" //双引号中的各种分隔符将不作处理
100 ddd
%set y {/n$x [expr 10+100]}
/n$x [expr 10+100] //花括号中,所有特殊字符都将成为普通字符,失去其特殊意义,TCL 解释器不会对其作特殊处理。
2、注释:'#'必须出现在TCL 解释器期望命令的第一个字符出现的地方,才被当作注释
%#This is a comment
%set a 100 # Not a comment //'#'就不被当作注释符,因为它出现在命令的中间,TCL 解释器把它和后面的字符当作命令的参数处理,从而导致错误
wrong # args: should be "set varName ?newValue?"
%set b 101 ; # this is a comment //'#'就被作为注释,因为前一个命令已经用一个分号结束
101
3、变量:set 命令能生成一个变量、也能读取或改变一个变量的值
$符号往后直到第一个不是字母、数字或下划线的字符之间的单词符号作为要被置换的变量的
名字
% set a 2
2
set a.1 4
4
% set b $a.1
2.1
%set b ${a.1}
4
3.1 unset删除:
% unset a b day(monday) //删除了变量a、b 和数组元素day(monday)
%unset day //删除整个数组
3.2 append命令把文本加到一个变量的后面:
% set txt hello
hello
% append txt "! How are you"
hello! How are you
3.3 incr 命令把一个变量值加上一个整数, 要求变量原来的值和新加的值都必须是整数:
%set b a
a
% incr b
expected integer but got "a"
%set b 2
2
%incr b 3
5
4、表达式
4.1 数学函数:
%set x 2
2
% expr 2* sin($x<3)
1.68294196962
expr把所有的参数组合到一起,作为一个表达式,然后求值