2013-03-21 5 views
8

は、ハードな方法ルビー学ぶ、私はプログラムを終了するには、構文が見つかりました:「終了」するパラメータとして0を渡すのはなぜですか?本の中で

Process.exit(0) 

はなぜパラメータ0が、私は別のものを渡した場合、それが動作するにもかかわらず、ここexit方法で渡されています整数を渡したり、パラメータを渡したりしないでください。 0の意義は何ですか?

+0

:それは$?変数を使用して成功したかどうかをチェックでき

あなたは、一例で、bashシェルからスクリプトを実行した場合、それはProcess.exit(0)を呼び出します、 )プログラムの "戻り値"。 –

+1

@kamituelの答えと同じように、これはRubyの内部についてではなく、シェルスクリプト(または他のプログラミング言語)がどのように機能するかに関するものです。 – sawa

答えて

12

これは「終了コード」です。

この終了コードは、これは何の効果もありません、コードが後にキャッチされていない場合は、あなたが望むものは何でも渡すことができます

(たとえばhttp://tldp.org/LDP/abs/html/exitcodes.htmlを参照)いくつかのケースでは特別な意味を持っています。

ここで '0'は 'すべてうまく動作します!'です。

+1

"0は私が特に言いたいことは何もない!"私は「すべてがうまくいった」と言います。 – tokland

+1

@tokland確かに、あなたは正しい。私は自分の投稿を修正する。 – pierallard

6

これは、子プロセスが開始されたとき(子プロセスがRubyスクリプトの場合)、親プロセス(シェル、システムなど)が終了するのを待つことができるからです。

終了すると、親プロセスにその実行状態を伝えることができます。ゼロは、通常、実行が成功し、エラーなしで完了したことを意味します。終了するには、渡されたパラメータがラフな意味で(ある

$ ./my_ruby.script  # calls Process.exit(0) 
$ echo $? 
0       # ok, script finished with no errors. 
関連する問題