Ruby system calls
The programming language Ruby allows to make system calls redirected to the shell. This is useful to call certain local applications or read system information. It even allows to script certain tasks via Ruby.
Different methods
There are 3 different syntax of system calls within the Ruby programming language:
system call
# irb> system('ls -l')
backticks
# irb> `ls -l`
%x[command]
# irb> %x[ls -l]
Getting output
Using the backticks (`command
`) and the %x[command]
methods allow to get the output of the system call returned as a string. Therefore it is possible to store this kind of information within a variable.
Example 1:
# irb> commandOutput = `ls -l`
Example 2:
# irb> commandOutput = %x[ls -l]
commandOutput
contains the output of the command ls -l
as a string.
Using Ruby variables
The backticks (`command
`) and the %x[command]
methods allows to include Ruby variables within the `command
` string with the following escape characters:
#{rubyVariable}
Example 1:
# irb> filename = example.txt
# irb> `ls -l | grep #{filename}`
Example 2:
# irb> filename = example.txt
# irb> %x[ls -l | grep #{filename}]
See Also
External links
published on 20 Jul 2011
written by Martin Hauser