如何从命令行TCL捕获错误消息

时间:2014-12-04 11:44:48

标签: try-catch tcl message qsub vlsi

我正在ICC上的tcl编写脚本,并尝试在发送到sung-grid时收到错误消息。

例如,我有以下行。

sh /usr/bin/xterm -e "cd DM ; mqsub -int -parallel 200 cal -cal -t 200 CAL_header | tee S.log ; touch .S_finished" &

因为我没有200个免费的cpu,如果我在linux shell执行这个命令行,我会得到以下消息: “您的”qrsh“请求无法安排,请稍后再试。”

我如何在ICC上收到此错误消息&和命令的结束?

由于

2 个答案:

答案 0 :(得分:0)

我假设您正在通过在tcl。

中使用exec来执行shell命令

在这种情况下,您可以使用catch语句来识别错误消息。

if { [catch {exec <your_shell_program_command_here>} result] } {
    puts "Following problem happened : $result"
    exit 1
} 

语法:

catch script ?varName?

man page

中引用以下内容
  

如果脚本引发错误,catch将返回非零整数值   对应于评估返回的异常返回码   脚本。 Tcl定义了从脚本评估到的正常返回代码   为零(0)或TCL_OK。 Tcl还定义了四个特殊回报   代码:1(TCL_ERROR),2(TCL_RETURN),3(TCL_BREAK)和4   (TCL_CONTINUE)。评估脚本期间的错误由表示   返回码为TCL_ERROR。

答案 1 :(得分:0)

你是说术语ICC的 Synopsys ICCompiler 吗?

如果 queue 有任何关于启动任何EDA工具的工作的错误,请选择以下方式启动。

{launch command for job (qsub *switches* ) } > & log &
这将消除故障排除的困难。 很抱歉发布此问题作为答案,但我无法发表评论