Project

General

Profile

Bug #8004

Updated by nobu (Nobuyoshi Nakada) over 7 years ago

``` 
 =begin 
  #!/bin/sh 

 
 
  # make an executable 
   
    echo '#!/usr/bin/env ruby' >    my_bin 
   
    echo 'puts "omg"'            >> my_bin 
   
    chmod +x my_bin 


 
 
 
  # run it in 1.9 
   
    ruby1.9 -v 
     
      # >> ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0] 

   
 
    ruby1.9 -r open3 -e 'p Open3.capture3({"PATH" => ".:#{ENV["PATH"]}"}, "my_bin")' 
     
      # >> ["omg\n", "", #<Process::Status: pid 30556 exit 0>] 

 
 
  # run it in 2.0 
   
    ruby2 -v 
     
      # >> ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0] 

   
 
    ruby2 -r open3 -e 'p Open3.capture3({"PATH" => ".:#{ENV["PATH"]}"}, "my_bin")' 
     
      # >> /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:211:in `spawn': No such file or directory - my_bin (Errno::ENOENT) 
     
      # >>     from /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:211:in `popen_run' 
     
      # >>     from /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:99:in `popen3' 
     
      # >>     from /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:279:in `capture3' 
     
      # >>     from -e:1:in `<main>' 

   
 
    # the above fails, but this one works 
   
    ruby2 -r open3 -e 'ENV["PATH"] = ".:#{ENV["PATH"]}"; p Open3.capture3("my_bin")' 
     
      # >> ["omg\n", "", #<Process::Status: pid 30556 exit 0>] 

   
 
    # it is setting the path, though, so idk what the problem is 
   
    ruby2 -r open3 -e 'p Open3.capture3({"PATH" => ".:#{ENV["PATH"]}"}, "echo $PATH")' 
     
      # >> [".:/Users/joshcheek/.rbenv/shims: ... 
 =end

Back