From df5f2fab938cd020dfdeeb8db46cfaefe57aa6bc Mon Sep 17 00:00:00 2001 From: Burdette Lamar Date: Tue, 23 Jan 2024 21:43:52 -0600 Subject: [PATCH] [DOC] Correction for Process.spawn doc --- process.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/process.c b/process.c index df284a135c..8a28a9e760 100644 --- a/process.c +++ b/process.c @@ -4991,7 +4991,9 @@ rb_f_system(int argc, VALUE *argv, VALUE _) * * "Hello! 1\n" * - * Ruby invokes the executable directly, with no shell and no shell expansion. + * Ruby invokes the executable directly. + * This form does not use the shell; + * see below for caveats. * * If one or more +args+ is given, each is an argument or option * to be passed to the executable: @@ -5006,6 +5008,14 @@ rb_f_system(int argc, VALUE *argv, VALUE _) * C* * hello world * + * The 'cmdname, arg1, ...' form does not use the shell. However, + * on different OSes, different things are provided as built-in + * commands. An example of this is 'echo', which is a built-in + * on Windows, but is a normal program on Linux and Mac OS X. + * This means that `Process.spawn 'echo', '%Path%'` will display + * the contents of the `%Path%` environment variable on Windows, + * but `Process.spawn 'echo', '$PATH'` prints the literal '$PATH'. + * * Raises an exception if the new process could not execute. */