Perl Cleartool接受声明

时间:2014-05-08 11:17:42

标签: perl cleartool

我使用以下代码从perl脚本执行ClearCase语句“Accept”。

$acceptA = `accept $Component`;

执行后,在我的perl脚本中,$acceptA的值为空。

执行此行期间屏幕上显示的文字是:“错误您无权接受此项工作。”

我如何阅读此行?我以为它会像“cleartool checkin”命令那样返回变量$acceptA

2 个答案:

答案 0 :(得分:1)

由于我不知道ClearCase以及它如何接受,我只能猜测。看到它是如何是一条错误消息,它可能被写入STDERR而不是STDOUT,并且反引号只捕获执行命令的STDOUT。 在这种情况下,将命令STDERR重定向到STDOUT将起作用。尝试

$acceptA = `accept $Component 2>&1`

并查看在出现错误时是否也能捕获输出。

答案 1 :(得分:1)

我最终将SYSERR重定向到我可以读/写的输出文件。

打开STDERR,“> /ellipse/el6.3.3_ry_sup/src/0/$logfile”

作为系统命令的一部分在屏幕上显示的所有错误消息都进入了$ logfile。

我还可以使用以下内容添加到SYSERR: print STDERR“\ nAccepting $ Component”;

感谢所有帮助。