Perl 如何检查系统命令是否成功
使用下面的代码,我如何在svn更新中检查系统命令是否返回成功 当svn更新失败时,我希望我的脚本失败,我如何实现这一点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'
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环境),您可以放心地怀疑它在过程中遇到了问题。阅读此内容:同时查看
$?
阅读此内容:同时查看$?