tcl脚本(一) - 基本语法

实际脚本用例的讲解请看:tcl脚本用于questasim回归测试

介绍

TCL是一种解释执行的脚本语言。提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。

TCL的解释器是用一个C\C++语言的过程库实现的,某种意义上,可以将TCL看做一个C库,每个应用程序都可以根据自己的需要对TCL语言进行扩展。

扩展后的TCL语言将继承TCL核心部分的所有功能,包括核心命令、控制结构、数据类型、对过程的支持等。

学习核心:

  • TCL脚本执行依赖于解释器(逐行执行,没有编译这回事);
  • TCL有效命令行以命令+字符串(结合空间间隔符形成);
  • 明白**置换( $ 、[ ]、 \ )引用( " " 、{ } )**的差别与联系;
  • 明白命令eval、expr、source、exec的差别;
  • 掌握 { * } 配合glob等返回list后的操作。

置换

  • 一个TCL脚本可以包含一个或多个命令。命令之间必须要用换行符或者分号隔开,例如:

    # 以下均合法
    set a 1  #设置a的值为1
    set b 2	 #设置b的值为2
    set a 1;set b 2
    set a 	 ##读取a的值,结果为1
    
  • tcl的每一个命令包含一个或几个单词,第一个单词代表命令名,另外的单词则是这个命令的参数,单词之间必需用空格或Tab隔开

普通置换

TCL解释器在分析命令时,会把所有的命令当做字符串,例如

%set x 10  		#定义变量x,并把x的值赋值为10,这个10也是字符串,而不是我们认为的int等类型
%set y x+100  	#定义变量y,并把y的值赋值为字符串 x+100 ,但注意并非是 110 或者10+100,因为把x当做字符串来看待

变量置换

变量置换有一个 $ 符号标记,如下:

%set x 10 
%set y $x+100   #此时y为字符串 10+100,因为x被置换成了10
#由此我们发现,还不是我们想要的y=110的结果

命令置换

命令置换是由符号 [ ] 括起来的命令及参数,

%set x 10 
%set y [expr $x+100]	#此时y=110

注解:

  • 当TCL解释器。从左到右遇到第一个"[" 时,就会把随后的expr当做一个命令,从而激活expr对应的c/c++过程。
  • 因为中括号[ ]的存在,tcl会把中括号里面的expr $x+100当做一个新的运算来计算,

反斜杠 \ 置换

类似其他语言中的转义字符,在单词符号中插入如换行符、空格、[ 、$等作为特殊符号时,就需要用到 **\ **符号来置换。

%set msg multiple\ space   #添加了一个空格,结果为“multiple space” 

花括号{ }和双引号“”

除了使用反斜杠以外,还可以使用花括号{ }和双引号"",也可以将一些具有命令作用的字符作为特殊字符使用。

双引号""

  • tcl解释器对于双引号""中的各种分隔符将不做处理,但是对换行符以及 $ 和 [ ] 两种置换符会照常处理
%set x 10 
%set y "$x ddd"   #结果为“10 ddd”

花括号{ }

  • 如果变量中有字母、数字或下划线的字符,又要用置换,可以用花括号{ }把变量括起来。
%set a 2
%set a.1 4 		# a.1的值为4
#我们期待  a.1这个
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值