過去 2 日間、頭を悩ませている問題が発生しました。
トリガーされるとローカルシェルコマンド(子プロセス)を実行するtclスクリプト(eggdrop用)を実行しています。コマンドが成功すると、結果が出力されます。ただし、コマンドが成功しない場合は、エラーが発生します " 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
}
}
execをエラーを返すシェルスクリプトに変更するのではなく、TCLを使用してこれを解決し、詳細を学びたいと思います。
私はTCLのCATCHコマンドを読み、スクリプトに対してさまざまなアプローチを試みましたが、すべて失敗しました:(
どんな助けでも大歓迎です。
乾杯。