@@ -921,7 +921,8 @@ changes: |
921 | 921 | * `input` {string|Buffer|TypedArray|DataView} The value which will be passed |
922 | 922 | as stdin to the spawned process. If `stdio[0]` is set to `'pipe'`, Supplying |
923 | 923 | this value will override `stdio[0]`. |
924 | | - * `stdio` {string|Array} Child's stdio configuration. `stderr` by default will |
| 924 | + * `stdio` {string|Array} Child's stdio configuration. |
| 925 | + See [`child_process.spawn()`][]'s [`stdio`][]. `stderr` by default will |
925 | 926 | be output to the parent process' stderr unless `stdio` is specified. |
926 | 927 | **Default:** `'pipe'`. |
927 | 928 | * `env` {Object} Environment key-value pairs. **Default:** `process.env`. |
@@ -962,6 +963,34 @@ If the process times out or has a non-zero exit code, this method will throw an |
962 | 963 | function. Any input containing shell metacharacters may be used to trigger |
963 | 964 | arbitrary command execution.** |
964 | 965 |
|
| 966 | +```js |
| 967 | +const { execFileSync } = require('node:child_process'); |
| 968 | + |
| 969 | +try { |
| 970 | + const stdout = execFileSync('my-script.sh', ['my-arg'], { |
| 971 | + // Capture stdout and stderr from child process. Overrides the |
| 972 | + // default behavior of streaming child stderr to the parent stderr |
| 973 | + stdio: 'pipe', |
| 974 | + |
| 975 | + // Use utf8 encoding for stdio pipes |
| 976 | + encoding: 'utf8', |
| 977 | + }); |
| 978 | + |
| 979 | + console.log(stdout); |
| 980 | +} catch (err) { |
| 981 | + if (err.code) { |
| 982 | + // Spawning child process failed |
| 983 | + console.error(err.code); |
| 984 | + } else { |
| 985 | + // Child was spawned but exited with non-zero exit code |
| 986 | + // Error contains any stdout and stderr from the child |
| 987 | + const { stdout, stderr } = err; |
| 988 | + |
| 989 | + console.error({ stdout, stderr }); |
| 990 | + } |
| 991 | +} |
| 992 | +``` |
| 993 | + |
965 | 994 | ### `child_process.execSync(command[, options])` |
966 | 995 |
|
967 | 996 | <!-- YAML |
@@ -991,7 +1020,8 @@ changes: |
991 | 1020 | * `input` {string|Buffer|TypedArray|DataView} The value which will be passed |
992 | 1021 | as stdin to the spawned process. If `stdio[0]` is set to `'pipe'`, Supplying |
993 | 1022 | this value will override `stdio[0]`. |
994 | | - * `stdio` {string|Array} Child's stdio configuration. `stderr` by default will |
| 1023 | + * `stdio` {string|Array} Child's stdio configuration. |
| 1024 | + See [`child_process.spawn()`][]'s [`stdio`][]. `stderr` by default will |
995 | 1025 | be output to the parent process' stderr unless `stdio` is specified. |
996 | 1026 | **Default:** `'pipe'`. |
997 | 1027 | * `env` {Object} Environment key-value pairs. **Default:** `process.env`. |
@@ -1069,7 +1099,8 @@ changes: |
1069 | 1099 | this value will override `stdio[0]`. |
1070 | 1100 | * `argv0` {string} Explicitly set the value of `argv[0]` sent to the child |
1071 | 1101 | process. This will be set to `command` if not specified. |
1072 | | - * `stdio` {string|Array} Child's stdio configuration. **Default:** `'pipe'`. |
| 1102 | + * `stdio` {string|Array} Child's stdio configuration. |
| 1103 | + See [`child_process.spawn()`][]'s [`stdio`][]. **Default:** `'pipe'`. |
1073 | 1104 | * `env` {Object} Environment key-value pairs. **Default:** `process.env`. |
1074 | 1105 | * `uid` {number} Sets the user identity of the process (see setuid(2)). |
1075 | 1106 | * `gid` {number} Sets the group identity of the process (see setgid(2)). |
|