9

在《硬着头皮学习ruby》一书中,我找到了退出程序的语法:

Process.exit(0)

为什么在我传递另一个整数或不传递任何参数0的情况下在方法中传递参数?exit有什么意义0

4

2 回答 2

12

这是一个“退出代码”。

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

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

这里的“0”代表“一切正常!”

于 2013-03-21T09:13:38.923 回答
7

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

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

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

$ ./my_ruby.script        # calls Process.exit(0)
$ echo $?
0                         # ok, script finished with no errors.
于 2013-03-21T09:13:50.783 回答