在学习ruby的方法一书中,我找到了退出程序的语法:
Process.exit(0)
为什么参数0
在exit
方法中传递,即使它在我传递另一个整数或不传递任何参数时有效? 0
的重要性是什么?
答案 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.