在过去的两天里,我遇到了一个问题。
我正在运行一个 tcl 脚本(对于一个 eggdrop),当它被触发时,它会执行一个本地 shell 命令(子进程),如果命令成功,它会吐出结果。但是,如果命令不成功,我会收到一个错误“ Tcl error [proc_ports]: child process exited abnormally
:.
如果子进程没有找到任何结果,我想要创建一个自定义响应。
脚本是:
set chan "#help"
bind pub -|- .port proc_ports
proc proc_ports {nick host handle channel testes} {
global chan
if {"$chan" == "$channel"} {
return 0
}
if [matchattr $nick |fmn $channel] {
set ports [lindex $testes 0]
set fp [ exec grep -w "$ports" scripts/ports | awk {{$1=""; print $0}} ]
putserv "PRIVMSG $channel :Port \002$ports\002 is normally used for: \002$fp\002"
return 1
} else {
putserv "PRIVMSG $channel :$nick, you do \002NOT\002 have access to this command!"
return 1
}
}
我很想使用 TCL 解决这个问题,以帮助我了解更多信息,而不是将 exec 更改为会返回任何错误的 shell 脚本。
我已经阅读了 TCL 中的 CATCH 命令,并尝试了许多不同的脚本方法,但是都失败了:(
任何帮助,将不胜感激。
干杯。