tcl预期范围

tcl预期范围,tcl,expect,Tcl,Expect,由于if块作用域,if下的以下设置似乎没有生效: 16 if {[string compare "$DEBUG" "ON"]!=0} { 17 exp_internal 1 18 } 19 Rest of code that want the debug to be ON. 是否有一种方法可以使设置成为全局设置,因为其余的代码都依赖于此 谢谢 if { "$DEBUG" == "ON" } { exp_internal 1 } 处理全局设置时,您可能希望将-d选项传递

由于if块作用域,
if
下的以下设置似乎没有生效:

 16 if {[string compare "$DEBUG" "ON"]!=0} {
 17     exp_internal 1
 18 }
 19 Rest of code that want the debug to be ON.
是否有一种方法可以使设置成为全局设置,因为其余的代码都依赖于此

谢谢

if { "$DEBUG" == "ON" } {
    exp_internal 1
}
处理全局设置时,您可能希望将
-d
选项传递给expect二进制文件。根据手册页:

此标志与Expect脚本开头的“exp_internal 1”具有相同的效果,并且打印Expect的版本


我对你的逻辑感到不解:你的意思是说如果debug
=
打开,然后打开verbosity吗?尝试使用
eq
操作符或
string equals
命令来更清楚地说明问题……如前所述,逻辑似乎相反,当$debug未“打开”时,你将打开Expect的诊断。尝试
if{$DEBUG eq“ON”}{…等…
如果这不起作用,请尝试将行
put“DEBUG=$DEBUG”
a置于该行的开头,以检查DEBUG是否具有您认为具有的值。