归纳总结:
1.执行顺序
先分组,再替换,最后执行
花括号中不准替换
双引号和花括号的作用都是分组,但是不同之处在于是否支持替换
语句的运行分3步走:
1、首先分组
2、其次替换
3、最后运行
$的作用是变量引导符,在字符串中如果要替换某个变量,可能还需要用{}来界定变量的起始和终点
分组有三种方法:空格,双引号和花括号
另外转义符\在这里的作用是提升或者消除字符的能力
2.替换
1)$
引用替换,用以引用参数值,嵌套的$不予理睬。
set aa 00;
=>00
set bb aa;
=>aa
set x $$bb:#符号$只解释一次,将"$bb""用bb的值(aa)替换,#命令等效为 set x {$bb},大括阻止替换。
=>$aa
(2) :[]
方括号“[]”完成命令替换。用“[]”将一条命令括起来,命令执行完成后,返回结果。
set b [set a 5] ;#set a 5 命令输出的结果赋给 b
=>5
puts $b
=>5
set c [expr 5 * 10] ;#将乘式结果赋给 c
=>50
(3): " " 和{}
双引号和花括号将多个单词组织成一个参数,也是一种替换操作。””和{}内的替换如何进行
呢?一般的原则是在" "内的替换正常进行,而在{ }内的替换有可能会被阻止。
set a 123
=>123
puts "$a" #会替换
=>123
puts {$a} #不会替换
=>$a
3.转义
在tcl中可以使用{}将需要转义的字符串括起来。例如:
set a 5;
set b {$a}; #此时b的值为”$a“,而不是5。