Perl 如何检查系统命令是否成功

Perl 如何检查系统命令是否成功,perl,Perl,使用下面的代码,我如何在svn更新中检查系统命令是否返回成功 当svn更新失败时,我希望我的脚本失败,我如何实现这一点 sub do_compile { system("svn update"); print "svn update successful\n"; $ENV{'PATH'} = '/var/apps/buildtools/apache-maven-3.0.5/bin:/var/apps/java/jdk180_112_x64/bin'; $ENV{'JAVA_HOME'

使用下面的代码,我如何在svn更新中检查系统命令是否返回成功

当svn更新失败时,我希望我的脚本失败,我如何实现这一点

sub do_compile
{
 system("svn update");

 print "svn update successful\n";

 $ENV{'PATH'} = '/var/apps/buildtools/apache-maven-3.0.5/bin:/var/apps/java/jdk180_112_x64/bin';

$ENV{'JAVA_HOME'} = '/var/apps/java/jdk180_112_x64';

$ENV{'M2_HOME'} = '/var/apps/buildtools/apache-maven-3.0.5';

my $path = $ENV{'PATH'};

print "$path\n";

 system("mvn clean package -DskipTests=true -s /release/vgt/abc/.m2/artifactory_settings.xml");

如果系统命令成功,则返回零;如果失败,则返回非零状态(带有适当的错误代码)

if (system("svn update")) {
    die "SVN update failed!";
}
else {
    print "SVN update successful";
}
有关更多信息,请参阅以下链接:


如果成功,系统命令返回零;如果失败,系统命令返回非零状态(带有相应的错误代码)

if (system("svn update")) {
    die "SVN update failed!";
}
else {
    print "SVN update successful";
}
有关更多信息,请参阅以下链接:


跟随延斯、索布里克和纳文的线索。他们都很好。用简单的cmd进行测试。。。像“ls”。确保测试为阳性(即
ls*.txt
)和阴性(即
ls*.huh
)。然后替换实际cmd(即
svn…
)。 如果cmd表现良好,这应该可以工作。cmd被认为表现良好,当它成功时将返回0,当它失败时将返回非零(也称为错误代码)。
如果cmd始终返回0(或始终返回非零),则捕获输出并搜索关键字以确定成功/失败状态。例如,不要信任sqlplus及其0退出代码。如果在输出中看到ORA-[0-9]+(Oracle环境),您可以放心地怀疑它在过程中遇到了问题。

跟随Jens、Sobrique和Naveen的线索。他们都很好。用简单的cmd进行测试。。。像“ls”。确保测试为阳性(即
ls*.txt
)和阴性(即
ls*.huh
)。然后替换实际cmd(即
svn…
)。 如果cmd表现良好,这应该可以工作。cmd被认为表现良好,当它成功时将返回0,当它失败时将返回非零(也称为错误代码)。
如果cmd始终返回0(或始终返回非零),则捕获输出并搜索关键字以确定成功/失败状态。例如,不要信任sqlplus及其0退出代码。如果在输出中看到ORA-[0-9]+(Oracle环境),您可以放心地怀疑它在过程中遇到了问题。

阅读此内容:同时查看
$?
阅读此内容:同时查看
$?