summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
authorBurdette Lamar <BurdetteLamar@Yahoo.com>2024-01-23 21:43:52 -0600
committerGitHub <noreply@github.com>2024-01-24 12:43:52 +0900
commitdf5f2fab938cd020dfdeeb8db46cfaefe57aa6bc (patch)
tree5e48a49dde149b379b8e7d66f0f40185607a3495 /process.c
parentc16aaf119a8bac0d78b4124ecc097735a7c6ed83 (diff)
[DOC] Correction for Process.spawn doc
Diffstat (limited to 'process.c')
-rw-r--r--process.c12
1 files changed, 11 insertions, 1 deletions
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.
*/