Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Processモジュール > exec

singleton method Process.exec

exec(command, *args) -> ()[permalink][rdoc]

カレントプロセスを与えられた外部コマンドで置き換えます。

引数の解釈

引数が一つだけ与えられた場合、command が shell のメタ文字

  * ? {} [] <> () ~ & | \ $ ; ' ` " \n

を含む場合、shell 経由で実行されます。そうでなければインタプリタから直接実行されます。

引数が複数与えられた場合、第 2 引数以降は command に直接渡され、インタプリタから直接実行されます。

第 1 引数が 2 要素の配列の場合、第 1 要素の文字列が実際に起動するプログラムのパスで、第 2 要素が「みせかけ」のプログラム名になります。

MSDOS 環境の場合、command はサブシェル経由で実行されます。そうでない場合、command は exec(2) を使用して実行されるので元のプログラムからいくつかの環境を引き継ぎます。

[PARAM] command:
実行する外部コマンド。
[PARAM] args:
command に渡す引数。
exec "echo *"       # echoes list of files in current directory
# never get here


exec "echo", "*"    # echoes an asterisk
# never get here