一、TCL的置换
TCL 解释器把命令分成一个个独立的单词,同时进行必要的置换。置换分为以下三类:
● $: 变量置换
● []:命令置换
● \: 转义置换
1.1 变量置换
美元号 $ 为变量置换符号,$ 后的符号表示变量名,解释器会将其替换为这个符号中所赋的值。例子如下所示:
#!C:\ActiveTcl\bin\tclsh
set a hello_world
puts $a
输出结果为 hello_word
1.2 命令置换
中括号 [ ] 为命令置换符号,[ ] 内应是一个完整的 TCL 语句,解释器会将 [ ] 内的 TCL 语句替换为此句的执行结果,类似于 Shell 中的管道。例子如下所示:
#!C:\ActiveTcl\bin\tclsh
set a [expr 5 - 2]
puts $a
输出结果为 3
1.3 转义置换
反斜杠 \ 为转义置换符号,与 C++、Python 等语言中的转义符号类似,原本 TCL 中的特殊字符加上反斜杠后就会被当做普通字符对待。例子如下所示:
#!C:\ActiveTcl\bin\tclsh
set a 5
set b 10
puts "[expr $a + $b]"
puts "\[expr $a + $b\]"
puts "\[expr \$a + \$b\]"
● 第一个 puts 输出的表达式中含有命令置换符 [ ] ,所以其输出的应为 [ ] 中的执行结果。输出为 15。
● 第二个 puts 表达式中的命令置换符 [ ] 两端加上了转义符 \ ,说明 [ ] 会被解释器当做普通的左右中括号字符进行输出。但变量置换符 $ 却没有被转义,所以它还会对变量 a 和 b 进行替换。输出为 [expr 5 + 10]
● 第三个 puts 中所有置换符号均被转义,故输出为 [expr $a + $b]
注:\n 为换行符;\t 为 TAB 符。
1.3 其他字符
● 花括号字符 { } ,在花括号中,所有特殊字符都将成为普通字符, TCL 解释器不会对其作特殊处理。例子如下:
#!C:\ActiveTcl\bin\tclsh
set a 5
set b 10
puts \n[expr $a + $b]
puts {\n[expr $a + $b]}
输出为:
15
\n[expr $a + $b]
● 井号 # 表示注释。