Выполнение команд Bash в Node.js: методы и примеры

Для выполнения команд Bash в Node.js вы можете использовать модуль child_process, который обеспечивает функциональность для создания подпроцессов. Вот несколько методов, которые вы можете использовать:

  1. exec(): метод exec()используется для запуска команды в оболочке и буферизации вывода. Для обработки вывода требуется команда в виде строки и функция обратного вызова.
const { exec } = require('child_process');
exec('ls -l', (error, stdout, stderr) => {
  if (error) {
    console.error(`Error: ${error.message}`);
    return;
  }
  if (stderr) {
    console.error(`stderr: ${stderr}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
});
  1. spawn(): метод spawn()запускает команду в новом процессе и обеспечивает потоковый доступ к stdin, stdout и stderr. Он возвращает объект ChildProcess.
const { spawn } = require('child_process');
const ls = spawn('ls', ['-l']);
ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
  console.error(`stderr: ${data}`);
});
ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});
  1. execFile(): метод execFile()аналогичен exec(), но позволяет указать команду в виде файла, а не командной строки оболочки..
const { execFile } = require('child_process');
execFile('ls', ['-l'], (error, stdout, stderr) => {
  if (error) {
    console.error(`Error: ${error.message}`);
    return;
  }
  if (stderr) {
    console.error(`stderr: ${stderr}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
});

Эти методы предоставляют различные способы выполнения команд Bash в приложении Node.js. Не забывайте обрабатывать ошибки и выводить данные в соответствии с вашими конкретными требованиями.