为什么我们将0作为参数传递给“退出”?

时间:2013-03-21 09:10:34

标签: ruby exit

学习ruby的方法一书中,我找到了退出程序的语法:

Process.exit(0)

为什么参数0exit方法中传递,即使它在我传递另一个整数或不传递任何参数时有效? 0的重要性是什么?

2 个答案:

答案 0 :(得分:12)

这是一个'退出代码'。

此退出代码在某些情况下具有特殊含义(请参阅例如http://tldp.org/LDP/abs/html/exitcodes.html

你可以传递你想要的任何东西,如果代码没有被捕获,这将没有任何效果。

这里'0'代表'一切正常!'

答案 1 :(得分:6)

这是因为当子进程启动时(子进程就是你的Ruby脚本),父进程(shell,系统等)可以等待它完成。

一旦完成,它可以告诉父进程它的执行状态是什么。零通常意味着执行已成功完成且没有任何错误。

例如,如果您从bash shell运行脚本,它将调用Process.exit(0),您可以使用$?变量检查它是否成功:

$ ./my_ruby.script        # calls Process.exit(0)
$ echo $?
0                         # ok, script finished with no errors.