From: caleb clausen <redmine@...>
Date: 2010-06-11T20:07:06+09:00
Subject: [ruby-core:30731] [Bug #3426] exec doesn't allow command lines which begin with an env variable assignment

Bug #3426: exec doesn't allow command lines which begin with an env variable assignment
http://redmine.ruby-lang.org/issues/show/3426

Author: caleb clausen
Status: Open, Priority: Normal
Category: lib
ruby -v: ruby 1.9.3dev (2010-05-20 trunk 27911) [i686-linux]

The documentation for exec states: "If single string is given as the command, it is taken as a command line that is subject to shell expansion before being executed." However, command lines that begin with environment variable assignments do not seem to work. For example:

$ install/bin/ruby -e 'exec "FOO=1 echo bar"'
-e:1:in `exec': No such file or directory - FOO=1 echo bar (Errno::ENOENT)
	from -e:1:in `<main>'

Other examples of shellish syntax (not a filename) for the first word do work. 

This same problem seems to also afflict all the other constructs for running an external command: system, backticks, IO.popen, spawn. I'm reporting against 1.9.3, but all previous versions of ruby (s far back as 1.8.6) that I've tried have the problem as well.


----------------------------------------
http://redmine.ruby-lang.org