Skip to content

Latest commit

 

History

History
29 lines (21 loc) · 771 Bytes

replace-the-current-process-with-an-external-command.md

File metadata and controls

29 lines (21 loc) · 771 Bytes

Replace The Current Process With An External Command

Ruby's Kernel#exec method can be used to run an external command. What differentiates it from executing commands with the likes of back ticks or %x[] is that instead of forking a child process, it replaces the current process.

For instance, the following ruby script, when executed, will replace itself with an irb session.

Kernel.exec('irb')

The external command will even benefit from the existing environment. For example, if I set the following environment variable

$ export GREETING=hello

and then execute a file containing

Kernel.exec('echo $GREETING')

I can expect to see hello printed to stdout.