PERL 中使用的 exit(0) 和 exit(1) 有什么区别?

  • 本文关键字:exit 区别 PERL perl
  • 更新时间 :
  • 英文 :


因此,我在处理一个已经实现的项目时遇到了一个PERL脚本。由于它是保密的,我不能透露太多细节,但代码有点像这样:

if(defined($x)){
exit(0);
}
#...........
#.some other code.
#...........
if(!defined($y)){
print "ERROR !";
exit(1);
}

我假设出口(1(是在错误的情况下,出口(0(是在成功的情况下。但是,由于我们已经在打印错误消息,exit(0(exit(1(之间有什么区别

生成程序的进程可以检查您返回的数字。CCD_ 1通常表示";无错误";(这是Perl脚本的默认退出状态(。其他值是特定于程序的。

例如,grep带退出

  • 0,当它找到匹配项时
  • 1,当未找到匹配项时
  • 2,发生错误时

这样你就可以进行

if grep -q foo file; then
echo 'match'
else
echo 'no match (or error)'
fi

您可能应该使用die而不是printexit00之外的die("$msgn")大致相当于

print STDERR "$msgn";
exit( $! || ( $? >> 8 ) || 255 );

因此,它更简单,消息被打印到STDERR(而不是STDOUT(,并保证以非零代码(希望在调试时有意义的代码(退出。

最新更新