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

Pre*_*rem 9 ruby exit

在书中学习ruby的难点,我找到了退出程序的语法:

Process.exit(0)
Run Code Online (Sandbox Code Playgroud)

为什么参数0exit这里传递,即使它传递另一个整数或不传递任何参数它是否有效?有什么意义0

pie*_*ard 12

这是一个'退出代码'.

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

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

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


kam*_*uel 7

这是因为当子进程启动时(子进程在这种情况下是您的Ruby脚本),父进程(shell,系统等)可以等待它完成.

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

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

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