【问题标题】:How to run a command with no args in 'spawn'如何在“spawn”中运行没有参数的命令
【发布时间】:2020-01-24 20:41:19
【问题描述】:

您好,我正在尝试从 NodeJS 运行终端命令并尝试使用 spawn 命令,我一直在使用 exec 但现在正在尝试 spawn 用于标准输出。

我读过的所有例子,比如这个: Exec : display stdout "live"

使用带有多个参数的命令,就像上面的示例一样,它们使用 spawn 运行的命令是:

var spawn = require('child_process').spawn, ls = spawn('ls', ['-lh', '/usr']);

这是'$ ls -lh /usr'

我试图只运行不带参数的命令“pwd”,但我一直尝试这样做的所有方式(如下所示)都导致了一个“错误”

var spawn = require('child_process').spawn, ls = spawn('pwd');

var spawn = require('child_process').spawn, ls = spawn('pwd', []);

stderr: usage: pwd [-L | -P]

【问题讨论】:

    标签: node.js child-process spawn pwd


    【解决方案1】:

    spawn 中提供参数不是强制性的。在您的问题中,spawn 正在工作,这就是为什么您看到的错误实际上是在执行spawn('pwd') 之后stderr 的输出。

    pwdspawn 的工作示例:

    var spawn = require('child_process').spawn;
    
    const pwd = spawn('pwd');
    
    pwd.stdout.on('data', (data) => {
      console.log(`stdout: ${data}`);
    });
    
    pwd.stderr.on('data', (data) => {
      console.error(`stderr: ${data}`);
    });
    
    pwd.on('close', (code) => {
      console.log(`child process exited with code ${code}`);
    });
    
    

    演示:https://repl.it/repls/AlienatedTidyDatalogs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-07
      • 2022-10-07
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多