0 引言
- TCL语言解释器(tclsh、wish)等读取Tcl代码,以换行或英文分号来识别语句的结尾。
- 读取完一条语句后,根据空白字符将语句拆分为多个组(group)。
- 依次处理各个组,按规则执行替换操作。
- 第一组(即第一个单词)会被视为命令command,后续各个组都视为参数。
- 解释器查找该命令是否被定义,如果有就把参数传递给命令;如果没有就报错。
- 执行完毕后,如果本条语句的作用不是中断执行或者退出的话,继续处理下一条语句。
1 TCL语法
- 关于TCL语言,必须要知道的几个规则!
- TCL最基本的语法形式:命令 参数1 参数2 参数3。
TCL代码中所有的内容都被当做字符串(包括数字),语句中的命令跟参数也都是字符串,TCL只是把语句中的第一个字符串当作命令、后续字符串当成参数而已。
TCL命令是一个以换行符或者分号结束的单词列表。
TCL的注释是行首的井号#,或者命令结束后的;分号后面的#。
- 从最简单的打印输出文本开始。在TCL语言中,输出字符串的命令是puts。
2 Simple Text Output
1.1 关于TCL的注释
输出结果如下:
1.2 关于TCL命令结束
输出结果如下:
如果字符串包含多个单词,则必须用双引号" "或大括号{}将字符串括起来。用引号或大括号括起来的一组单词被视为一个单元,而用空格分隔的单词被视为命令的多个参数。引号和花括号都可以用来将几个单词组合成一个单元。
上述4条命令,只有最后一条是错误的,由于Hello与Tcl之间有空格,相当于两个参数传递给了puts命令,虽然puts可以接受多个参数,但是在这里这种用法是错误的。而前两条命令,由于引号和大括号的存在,虽然Hello和Tcl之间存在空格,但是仍然视为一个单元。
Tcl中的许多命令(包括puts)可以接受多个参数。如果字符串没有括在引号或大括号中,Tcl解释器将把字符串中的每个单词视为单独的参数,并将每个单词分别传递给puts命令。puts命令将尝试将单词作为可选参数求值。这可能会导致错误。