は、ハードな方法ルビー学ぶ、私はプログラムを終了するには、構文が見つかりました:「終了」するパラメータとして0を渡すのはなぜですか?本の中で
Process.exit(0)
はなぜパラメータ0
が、私は別のものを渡した場合、それが動作するにもかかわらず、ここexit
方法で渡されています整数を渡したり、パラメータを渡したりしないでください。 0
の意義は何ですか?
は、ハードな方法ルビー学ぶ、私はプログラムを終了するには、構文が見つかりました:「終了」するパラメータとして0を渡すのはなぜですか?本の中で
Process.exit(0)
はなぜパラメータ0
が、私は別のものを渡した場合、それが動作するにもかかわらず、ここexit
方法で渡されています整数を渡したり、パラメータを渡したりしないでください。 0
の意義は何ですか?
これは「終了コード」です。
この終了コードは、これは何の効果もありません、コードが後にキャッチされていない場合は、あなたが望むものは何でも渡すことができます
(たとえばhttp://tldp.org/LDP/abs/html/exitcodes.htmlを参照)いくつかのケースでは特別な意味を持っています。
ここで '0'は 'すべてうまく動作します!'です。
"0は私が特に言いたいことは何もない!"私は「すべてがうまくいった」と言います。 – tokland
@tokland確かに、あなたは正しい。私は自分の投稿を修正する。 – pierallard
これは、子プロセスが開始されたとき(子プロセスがRubyスクリプトの場合)、親プロセス(シェル、システムなど)が終了するのを待つことができるからです。
終了すると、親プロセスにその実行状態を伝えることができます。ゼロは、通常、実行が成功し、エラーなしで完了したことを意味します。終了するには、渡されたパラメータがラフな意味で(ある
$ ./my_ruby.script # calls Process.exit(0)
$ echo $?
0 # ok, script finished with no errors.
:それは
$?
変数を使用して成功したかどうかをチェックできあなたは、一例で、bashシェルからスクリプトを実行した場合、それは
Process.exit(0)
を呼び出します、 )プログラムの "戻り値"。 –@kamituelの答えと同じように、これはRubyの内部についてではなく、シェルスクリプト(または他のプログラミング言語)がどのように機能するかに関するものです。 – sawa