exec doesn't allow command lines which begin with an env variable assignment
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"'
exec': No such file or directory - FOO=1 echo bar (Errno::ENOENT)'
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.
Updated by mame (Yusuke Endoh) over 10 years ago
- Target version set to 2.0.0
See #3321. At least, this won't be fixed in 1.9.2.
But many people seem to hope this spec to be changed and I can
understand them. Let's discuss towards 1.9.x.
I move this ticket to 1.9.x feature tracker.
Yusuke Endoh email@example.com