child_process.execFileSync(file[, args][, options])
- 
file<string> 要运行的可执行文件的名称或路径。¥ file<string> The name or path of the executable file to run.
- 
args<string[]> 字符串参数列表。¥ args<string[]> List of string arguments.
- 
options<Object>- 
cwd<string> | <URL> 子进程的当前工作目录。¥ cwd<string> | <URL> Current working directory of the child process.
- 
input<string> | <Buffer> | <TypedArray> | <DataView> 将作为标准输入传给衍生进程的值。如果stdio[0]设置为'pipe',则提供该值将覆盖stdio[0]。¥ input<string> | <Buffer> | <TypedArray> | <DataView> The value which will be passed as stdin to the spawned process. Ifstdio[0]is set to'pipe', Supplying this value will overridestdio[0].
- 
stdio<string> | <Array> 子进程的标准输入输出配置。参见child_process.spawn()的stdio。除非指定stdio,否则默认情况下stderr将输出到父进程的标准错误。默认值:'pipe'。¥ stdio<string> | <Array> Child's stdio configuration. Seechild_process.spawn()'sstdio.stderrby default will be output to the parent process' stderr unlessstdiois specified. Default:'pipe'.
- 
env<Object> 环境变量键值对。默认值:process.env。¥ env<Object> Environment key-value pairs. Default:process.env.
- 
uid<number> 设置进程的用户身份(请参阅setuid(2))。¥ uid<number> Sets the user identity of the process (seesetuid(2)).
- 
gid<number> 设置进程的组标识(请参阅setgid(2))。¥ gid<number> Sets the group identity of the process (seesetgid(2)).
- 
timeout<number> 允许进程运行的最长时间(以毫秒为单位)。默认值:undefined。¥ timeout<number> In milliseconds the maximum amount of time the process is allowed to run. Default:undefined.
- 
killSignal<string> | <integer> 衍生的进程将被终止时要使用的信号值。默认值:'SIGTERM'。¥ killSignal<string> | <integer> The signal value to be used when the spawned process will be killed. Default:'SIGTERM'.
- 
maxBuffer<number> 标准输出或标准错误上允许的最大数据量(以字节为单位)。如果超过,则终止子进程。请参阅maxBuffer和 Unicode 的警告。默认值:1024 * 1024。¥ maxBuffer<number> Largest amount of data in bytes allowed on stdout or stderr. If exceeded, the child process is terminated. See caveat atmaxBufferand Unicode. Default:1024 * 1024.
- 
encoding<string> 用于所有标准输入输出的输入和输出的编码。默认值:'buffer'。¥ encoding<string> The encoding used for all stdio inputs and outputs. Default:'buffer'.
- 
windowsHide<boolean> 隐藏通常在 Windows 系统上创建的子进程控制台窗口。默认值:false。¥ windowsHide<boolean> Hide the subprocess console window that would normally be created on Windows systems. Default:false.
- 
shell<boolean> | <string> 如果是true,则在 shell 内运行command。在 Unix 上使用'/bin/sh',在 Windows 上使用process.env.ComSpec。可以将不同的 shell 指定为字符串。参见 Shell 要求 和 默认 Windows shell。默认值:false(无壳)。¥ shell<boolean> | <string> Iftrue, runscommandinside of a shell. Uses'/bin/sh'on Unix, andprocess.env.ComSpecon Windows. A different shell can be specified as a string. See Shell requirements and Default Windows shell. Default:false(no shell).
 
- 
child_process.execFileSync() 方法通常与 child_process.execFile() 相同,只是该方法在子进程完全关闭之前不会返回。当遇到超时并发送 killSignal 时,该方法将在进程完全退出之前不会返回。
¥The child_process.execFileSync() method is generally identical to
child_process.execFile() with the exception that the method will not
return until the child process has fully closed. When a timeout has been
encountered and killSignal is sent, the method won't return until the process
has completely exited.
如果子进程拦截并处理了 SIGTERM 信号并没有退出,父进程仍然会等待,直到子进程退出。
¥If the child process intercepts and handles the SIGTERM signal and
does not exit, the parent process will still wait until the child process has
exited.
如果进程超时或具有非零退出代码,此方法将抛出一个 Error,其中将包含底层 child_process.spawnSync() 的完整结果。
¥If the process times out or has a non-zero exit code, this method will throw an
Error that will include the full result of the underlying
child_process.spawnSync().
如果启用了 shell 选项,请勿将未经处理的用户输入传递给此函数。任何包含 shell 元字符的输入都可用于触发任意命令执行。
¥If the shell option is enabled, do not pass unsanitized user input to this
function. Any input containing shell metacharacters may be used to trigger
arbitrary command execution.
const { execFileSync } = require('node:child_process');
try {
  const stdout = execFileSync('my-script.sh', ['my-arg'], {
    // Capture stdout and stderr from child process. Overrides the
    // default behavior of streaming child stderr to the parent stderr
    stdio: 'pipe',
    // Use utf8 encoding for stdio pipes
    encoding: 'utf8',
  });
  console.log(stdout);
} catch (err) {
  if (err.code) {
    // Spawning child process failed
    console.error(err.code);
  } else {
    // Child was spawned but exited with non-zero exit code
    // Error contains any stdout and stderr from the child
    const { stdout, stderr } = err;
    console.error({ stdout, stderr });
  }
}import { execFileSync } from 'node:child_process';
try {
  const stdout = execFileSync('my-script.sh', ['my-arg'], {
    // Capture stdout and stderr from child process. Overrides the
    // default behavior of streaming child stderr to the parent stderr
    stdio: 'pipe',
    // Use utf8 encoding for stdio pipes
    encoding: 'utf8',
  });
  console.log(stdout);
} catch (err) {
  if (err.code) {
    // Spawning child process failed
    console.error(err.code);
  } else {
    // Child was spawned but exited with non-zero exit code
    // Error contains any stdout and stderr from the child
    const { stdout, stderr } = err;
    console.error({ stdout, stderr });
  }
}