Tcl 基于环境变量存在的条件

Tcl 基于环境变量存在的条件,tcl,Tcl,基于环境变量使用以下条件是否正确。还是有更好的办法 例如: # Both environment variables must exist if {expr [eval {info exists env(VARIABLE_1)}] && [eval {info exists env(VARIABLE_2)}]} { # true: do something } else { # false: do something different } 单独使用info

基于环境变量使用以下条件是否正确。还是有更好的办法

例如:

# Both environment variables must exist
if {expr [eval {info exists env(VARIABLE_1)}] && [eval {info exists env(VARIABLE_2)}]} {
    # true: do something 
} else {
    # false: do something different
} 

单独使用
info
应该可以:

# Both environment variables must exist
if {[info exists env(VARIABLE_1)] && [info exists env(VARIABLE_2)]} {
    # true: do something 
} else {
    # false: do something different
}

由于
info
返回一个布尔值,
if
处理得很好,您不需要
expr
。上述操作在我的机器上有效。

尽量避免
eval
。如果您认为您需要它,您可能需要简化您正在尝试的操作。还要注意,
If
条件表达式已经由
expr
处理,因此显式调用
expr
是多余的。只要试着记住自从Tcl 8.5进入生产准备阶段以来我上次需要
eval
。我相信一定有什么原因-我的一些代码真的很棘手但我现在想不起来…