繁体   English   中英

可以在Ruby脚本末尾省略“退出0”吗?

[英]OK to omit “exit 0” at end of Ruby script?

在Ubuntu 14的Ruby 1.9.3上,当我运行脚本时

#!/usr/bin/env ruby

和脚本

#!/usr/bin/env ruby
exit 0

他们做同样的事情。 特别是随后的echo $? 打印0 这种行为有多普遍? 我可以安全地从非平凡脚本的末尾省略exit 0吗?

在UNIX中,通常为成功保留0并保留非0的代码-各种错误。

在任何普通语言中,除非您的程序引发某种异常或使用其他代码显式退出,否则您可以放心地假定它以0退出。


根据Process#exit文档

退出(状态=真)
[...]可选参数用于将状态代码返回到调用环境。 真实和错误状态分别表示成功和失败。
其他整数值的解释取决于系统。

意味着Ruby默认成功退出,无论成功对底层系统意味着什么。

根据The Linux Documentation Project退出代码的文档

[...]成功的命令将返回0,而失败的命令将返回非零值,该值通常可以解释为错误代码。 行为良好的UNIX命令,程序和实用程序在成功完成后会返回0退出代码,尽管有一些例外。 [...]

意味着您将在UNIX环境中获得0。

根据Microsoft有关退出代码的文档

ERROR_SUCCESS
0(0x0)
操作成功完成。

这意味着您在Windows中也将得到零。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM