[英]Sending output to STDOUT in perl while executing a command
我正在编写一个perl代码,以将代码从jsvn update .
目录(在我的情况下为jsvn update .
)。 我希望在进行检查时,结果应显示在stdout中('jsvn update。'确实表明了这一点,但是如果有任何错误,我必须继续查看监视器,如果有错误,我必须给出一个清理并再次开始该过程。)我为此编写了一个程序,但它不会在屏幕上显示输出。 光标一直闪烁,我知道进程正在进行中,但是我想将结果也显示到stdout。 请帮我。
#!usr/bin/perl
use Capture::Tiny qw/tee/;
sub code(){
`jsvn cleanup .`;
($stdout, $stderr, @result) = tee { system( "jsvn update ." ) };
print "@result\n";
}
code();
if($stderr){
code();
}else{
print "The checkout has been done successfully \n";
exit;
}
如果您想使用IPC :: System :: Simple ,则可以通过$EXITVAL
来获取退出值,方法如下:
...
use IPC::System::Simple qw[capture $EXITVAL];
use feature qw[switch];
...
my @result = capture('jsvn update .');
given ($EXITVAL) {
when (0) {
print "Ok\n";
}
when (1) {
}
..
when (N) {
}
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.