Execute shell commands
There are a number of different ways to run shell commands from Ruby.
The exec command
Kernel#exec
replaces the current process and runs the command:
exec('ls ~') # Nothing after this command is executed
This might be a bit impractical, so have a look at the other options.
Backticks or %x
shortcut
Place your command inside backticks (`)
or execute it within %x()
and it will return the output of this command:
`ls ~` => "Applications Desktop Documents" %x(ls ~) => "Applications Desktop Documents"
The system command
Use Kernel#system
and it will return true
(command run successfully), false
(unsuccessful) or nil
(command execution failed):
system('ls ~') => true
For all of these methods, you can access the PID and exit status of the unix process via the$?
variable:
$?.pid => 11988 $?.exitstatus => 0
http://rubyquicktips.com/post/5862861056/execute-shell-commands