Node JS Текущая работа оболочки - PullRequest
0 голосов
/ 28 октября 2019

Я бы хотел, чтобы Node анализировал текущую команду bash и выполнял с ней действия параллельно с выполнением выполненной команды.

Например,

const { exec } = require('child_process');

const child = exec('bash server.sh',
  (error, stdout, stderr) => {
    console.log(`stdout: ${stdout}`);
    console.log(`stderr: ${stderr}`);
    if (error !== null) {
      console.log(`exec error: ${error}`);
    }
  });

где server.sh -

yell () {
  echo "bing";
  sleep 1s;
  yell;
}

yell;

Процесс, к сожалению, зависает, поскольку выполнение ожидает завершения server.sh, но никогда не завершается. Есть ли способ обработать вывод server.sh, как он появляется?

1 Ответ

1 голос
/ 28 октября 2019

Слушатель события может быть привязан так:

child.stdout.on('data', (data) => {
  console.log(data.toString());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...