Capture system command output

Hi
my bellow command

#!/usr/bin/ruby

require ‘rubygems’
parted -s /dev/cciss/c0d12 primary 0 100%
puts $?.to_i

its showing 0, but it should show 1

because check the command line from comand line

parted -s /dev/cciss/c0d12 mkpart primary 0 100%
Error: Can’t have overlapping partitions.

echo $?

1

then why from ruby is showing different ??
thanks

On 2012-09-02 22:06, Fosiul A. wrote:

#!/usr/bin/ruby

require ‘rubygems’
parted -s /dev/cciss/c0d12 primary 0 100%
puts $?.to_i

$?'s class is Process::Status
You should use $?.exitstatus

$?'s class is Process::Status
You should use $?.exitstatus

hi i tried that

but no luck , dont know why …
have a look

require ‘rubygems’
parted -s /dev/cciss/c0d12 primary 0 100%
puts $?.exitstatus

parted -s /dev/cciss/c0d12 mkpart primary 0 100%
Error: Can’t have overlapping partitions.
echo $?
1
ruby test.rb
0

On 2012-09-02 23:09, Fosiul A. wrote:

parted -s /dev/cciss/c0d12 primary 0 100%
puts $?.exitstatus

It works here:

$ irb
irb(main):001:0> parted -s /dev/cciss/c0d12 primary 0 100%
=> “Error: Could not stat device /dev/cciss/c0d12 - No such file or
directory.\n”
irb(main):002:0> puts $?.exitstatus
1
=> nil
irb(main):003:0>

Wybo D. wrote in post #1074357:

On 2012-09-02 23:09, Fosiul A. wrote:

parted -s /dev/cciss/c0d12 primary 0 100%
puts $?.exitstatus

It works here:

$ irb
irb(main):001:0> parted -s /dev/cciss/c0d12 primary 0 100%
=> “Error: Could not stat device /dev/cciss/c0d12 - No such file or
directory.\n”
irb(main):002:0> puts $?.exitstatus
1
=> nil
irb(main):003:0>

in my case

(irb):1: syntax error
parted -s /dev/cciss/c0d12 mkpart primary 0 100%
^
(irb):2: syntax error
puts $?.exitstatus
^
from (irb):2
from :0
irb(main):003:0>


Wybo

On 3 sep. 2012, at 00:33, Fosiul A. [email protected] wrote:

=> “Error: Could not stat device /dev/cciss/c0d12 - No such file or
directory.\n”
irb(main):002:0> puts $?.exitstatus
1
=> nil
irb(main):003:0>

in my case

(irb):1: syntax error
parted -s /dev/cciss/c0d12 mkpart primary 0 100%

You forgot the back quotes

Fosiul A. wrote in post #1074358:

in my case

(irb):1: syntax error
parted -s /dev/cciss/c0d12 mkpart primary 0 100%
^
(irb):2: syntax error
puts $?.exitstatus
^
from (irb):2
from :0
irb(main):003:0>

What is that? How about correcting your syntax errors?

~$ irb
1.9.3p194 :001 > parted -s /dev/cciss/c0d12 primary 0 100%
Errno::ENOENT: No such file or directory - parted -s /dev/cciss/c0d12
primary 0 100%
from (irb):1:in ``’
from (irb):1
from /Users/7stud/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `’
1.9.3p194 :002 > $?.exitstatus
=> 127
1.9.3p194 :003 >