Perl的Cleartool接受声明

问题描述 投票:2回答:2

我使用下面的代码从一个Perl脚本执行ClearCase的声明“接受”。

$acceptA = `accept $Component`;

执行后,我的perl脚本里面,$acceptA的值是空白。

这条线的执行过程中,屏幕上显示的文字是:“错误您没有权限接受这个工作。”

如何解读这一行?我认为这将返回到变量$acceptA因为它与“cleartool签入”命令呢?

perl cleartool
2个回答
1
投票

因为我不知道ClearCase和如何接受的作品,我只能猜测。看到它是如何错误信息,它可能被写入STDERR,而不是STDOUT和反引号只捕获执行的命令的标准输出。在这种情况下,STDERR重定向命令STDOUT会工作。尝试

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

,看看是否能在捕捉错误的情况下,输出也有效。


1
投票

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

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

所有这一切都显示在屏幕上的系统命令的一部分的错误信息,走进$日志文件。

我也可以添加以下文SYSERR:打印STDERR“\ nAccepting $组件”;

感谢所有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.