Как запустить команду без аргументов в 'spawn' - PullRequest
0 голосов
/ 24 сентября 2019

Здравствуйте, я пытаюсь запустить терминальные команды из NodeJS и пытаюсь использовать команду spawn, я использовал exec, но сейчас пытаюсь вызвать spawn для stdout.

Все примеры, которые я прочиталПример: Exec: display stdout "live"

Используйте команды с несколькими аргументами, как в примере выше, команда, которую они запускают с порождением:

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

Что такое '$ ls -lh / usr'

Я пытаюсь просто запустить команду 'pwd' без аргументов, но всеми способами, которые я пытался сделать, (как показано ниже)привели к ошибке '' 1012 *

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

или

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

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

1 Ответ

1 голос
/ 24 сентября 2019

Предоставление аргументов в spawn не является обязательным.В вашем вопросе spawn работает, и именно поэтому вы видите ошибку, фактически являющуюся выводом stderr после выполнения spawn('pwd').

Рабочий пример pwd с spawn:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...