从TCL中的if语句返回空字符串

从TCL中的if语句返回空字符串,tcl,Tcl,我希望grep文件名中的值,并返回字符串或空字符串作为结果 我有这个密码 if {[catch {exec {*[list grep "MYTESTSTRING" $filename]} result] == 0} { [concat [file rootname $filename] .newext] } else { ??? } 里面有什么 我尝试了放置“和”和[concat[列表“”]],但都没有达到预期效果。看来正确的答案是只需删除要在文件名或文件内容中搜索的或?您可能需要

我希望grep文件名中的值,并返回字符串或空字符串作为结果

我有这个密码

if {[catch {exec {*[list grep "MYTESTSTRING" $filename]} result] == 0} {
   [concat [file rootname $filename] .newext]
} else {
   ???
}
里面有什么


我尝试了
放置“
[concat[列表“”]]
,但都没有达到预期效果。

看来正确的答案是只需删除要在文件名或文件内容中搜索的

?您可能需要检查,并解释可用选项(
if
vs.
expr
)。
返回值可能是您正在查找的
的结果,如果
是由条件表达式选择的脚本的结果(由于
elseif
而多个)。如果没有选择脚本,则结果是空字符串。顺便说一句,Tcl的实现强烈优化了这些空字符串。