在 Tcl 代码中绕过退出
bypass exit in code in Tcl
让我们假设我有 proc foo。过程代码是:
proc foo { argy } {
if { $argy == 1 } { exit 1 }
}
我想调用 foo,但是有调用代码 bypass/ignore 退出命令,而不是退出 TCL。即:此代码:
foo 1
puts "bar"
应该产生:
>bar
有什么想法吗?
谢谢。
使用 rename
覆盖默认行为。
rename exit _exit
proc exit {{status ""}} {}
保留上面的代码,在你的代码中第一次出现退出命令之前。即,即使在代码的开头,exit
也会被此虚拟 exit
过程替换。
让我们假设我有 proc foo。过程代码是:
proc foo { argy } {
if { $argy == 1 } { exit 1 }
}
我想调用 foo,但是有调用代码 bypass/ignore 退出命令,而不是退出 TCL。即:此代码:
foo 1
puts "bar"
应该产生:
>bar
有什么想法吗?
谢谢。
使用 rename
覆盖默认行为。
rename exit _exit
proc exit {{status ""}} {}
保留上面的代码,在你的代码中第一次出现退出命令之前。即,即使在代码的开头,exit
也会被此虚拟 exit
过程替换。