On Windows Process.spawn 'command', 'arg1', 'arg2', ... evals the arguments
|ruby -v:||ruby 2.0.0p195 (2013-05-14) [x64-mingw32]||Backport:||1.9.3: UNKNOWN, 2.0.0: UNKNOWN|
Environment: ruby 2.0.0p195 (2013-05-14) x64-mingw32 on Windows 7 64bit
According to the Process.spawn documentation, the syntax 'cmdname, arg1, ...' doesn't involve the shell. Indeed, on Unix this is true: ((%Process.spawn 'echo', '$PATH'%)) prints '$PATH'.
But on Windows the behaviour is different: executing ((%Process.spawn 'echo', '%Path%'%)) prints the contents of the Path environment variable.
I think the behaviour should be the same on the different OSes; at least, if it is not possible, the documentation should point it out.
- process.c: [DOC] Document caveats of command form of Process.spawn with regard to the shell and OS. Patched by Steve Klabnik [Bug #8550]
#3 Updated by Steve Klabnik over 2 years ago
I've attached a patch for the RDOC, what do you think?
#4 Updated by Zachary Scott over 2 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100