将中括号中的指令执行后传回执行的结果
例子 执行结果
set b 8 8
set a [expr $b+2] 10
若要保留字符“[ ]”,需要加 “\”
set a \[expr\] [expr]
2.大括号{ }
大括号 { } 的作用和双引号类似,都是做grouping的动作,
但他会免去大括号中的一切的替换和计算,把大括号中都当成子串处理
例子 执行结果
set b 8 8
set a {[expr $b+2]} [expr $b+2]
一般常犯的错误是在“}” “{”两个字符之间没有添加空白符
例如 if { $x<1}{puts "X=$x"}就会出现语法错误
3.双引号“ ”
tcl在分析语法中参数时会自动加上双引号
x = 4; y = x+10 y -> 14
set x 4; set y x+10 y -> "x+10"
双引号能同时避免“;”的作用,但其中的替代与计算都会被执行
set a "x is $x; y is $y" -> x is 4;y is x+10
当大括号被双引号包起来,大括号免去替代计算的功能就会被关掉
set x curly
set a "x is {$x}" -> x is {curly}