--000e0cd34100ae6c6f0467599eff
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

>
> Hello Group,
>
> Is there any way to retrieve an exit code of shell commands when called
> from ruby?
>
> ruby code :
>
> exec("ls") if fork.nil?
> Process.wait
>
> shell :
>
> # ls
> # echo $? <-- get this value in ruby
> --
>

As of Ruby 1.9, you indeed have the $? global variable, which references the
exit status of the last child process to terminate. In your example, exec
will replace the subprocess by running the given command, thus $? will
contain its exit status.

irb(main):001:0> exec('ls') if fork.nil?; Process.wait; puts $?
tmp
pid 5552 exit 0

irb(main):002:0> exec('cat /etc/sudoers') if fork.nil?; Process.wait; puts
$?
cat: /etc/sudoers: Permission denied
pid 5556 exit 1

Hope it helps
Cheers

Alex

--000e0cd34100ae6c6f0467599eff--