[英]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。
ERROR_SUCCESS
0(0x0)
操作成功完成。
这意味着您在Windows中也将得到零。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.