Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > system
system(command, options={}) -> bool | nil
[permalink][rdoc]system(env, command, options={}) -> bool | nil
引数を外部コマンドとして実行して、成功した時に真を返します。
子プロセスが終了ステータス 0 で終了すると成功とみなし true を返します。 それ以外の終了ステータスの場合は false を返します。 コマンドを実行できなかった場合は nil を返します。
終了ステータスは変数 $? で参照できます。
コマンドを実行することができなかった場合、多くのシェルはステータス 127 を返します。(したがって $? の数値は、0x7f00)、シェルを介 さない場合は Ruby の子プロセスがステータス 127 で終了します。 コマンドが実行できなかったのか、コマンドが失敗したのかは、普通 $? を参照することで判別可能です。
この形式では command が shell のメタ文字
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
を含む場合、shell 経由で実行されます。 そうでなければインタプリタから直接実行されます。
[SEE_ALSO] Kernel.#`,Kernel.#spawn,Kernel.#exec,system(3)
system(program, *args, options={}) -> bool | nil
[permalink][rdoc]system(env, program, *args, options={}) -> bool | nil
引数を外部コマンドとして実行して、成功した時に真を返します。
子プロセスが終了ステータス 0 で終了すると成功とみなし true を返します。 それ以外の終了ステータスの場合 (コマンドを実行できなかった場合も含む)は false を返します。
終了ステータスは変数 $? で参照できます。
コマンドを実行することができなかった場合、多くのシェルはステータス 127 を返します。(したがって $? の数値は、0x7f00)、シェルを介 さない場合は Ruby の子プロセスがステータス 127 で終了します。 コマンドが実行できなかったのか、コマンドが失敗したのかは、普通 $? を参照することで判別可能です。
Hash を options として渡すことで、起動される子プロセスの
などを変更できます。環境変数のクリアなども指定できます。 詳しくは Kernel.#spawn を参照してください。
この形式で呼び出した場合、空白や shell のメタキャラクタも そのまま program の引数に渡されます。 先頭の引数が2要素の配列であった場合、第1要素の文字列が実際に 起動するプログラムのパスであり、第2要素が「みせかけ」のプロ グラム名になります。 また、第1要素はフルパスで指定しなくても環境変数 PATH から探します。
[SEE_ALSO] Kernel.#`,Kernel.#spawn,Kernel.#exec,system(3)