编写TCL代码时遇要写一个if判断条件,很简单的一个语句,结果却费了很大力气才搞定。要判断的是,如果执行info exists成功而且某全局数组C的某个成员大于0,正确的语句为:

 

if { [info exists C(AP${AP}cdnnoperap)] && $C(AP${AP}cdnnoperap > 0 } { }

 

我为了逻辑上的清晰,特地将语句写为:

 

if { [info exists C(AP${AP}cdnnoperap)] && {$C(AP${AP}cdnnoperap} > 0 } { }

 

结果报错。又改成

if { [info exists C(AP${AP}cdnnoperap)] && [$C(AP${AP}cdnnoperap] > 0 } { }

还是报错。又改为

if { [info exists C(AP${AP}cdnnoperap)] && {"$C(AP${AP}cdnnoperap" != "0"} } { }

仍然报错。

 

看来TCL的语法确实还是很有自己的特点的。往后要多加注意。