如何在Javascript中逐行读取终端命令的输出

如何在Javascript中逐行读取终端命令的输出,javascript,node.js,terminal,electron,output,Javascript,Node.js,Terminal,Electron,Output,我正在执行一个终端命令,希望逐行读取输出。 这是我的密码 async function executeCommand(command, callback) { const exec = require('child_process').exec; await exec(command, (error, stdout, stderr) => { callback(stdout); }); }) 是否可以逐行读取输出以及如何读取?您可以在下线字符上拆分输出,以将每一行作为数组中的一

我正在执行一个终端命令,希望逐行读取输出。 这是我的密码

async function executeCommand(command, callback) {
const exec = require('child_process').exec;
await exec(command, (error, stdout, stderr) => { 
    callback(stdout);
});
})


是否可以逐行读取输出以及如何读取?

您可以在下线字符上拆分
输出
,以将每一行作为数组中的一个条目。请注意,这将在最后一个EOL字符后创建一个空白条目,因此如果您知道命令以该字符结尾(它可能会这样做),那么您应该修剪/忽略最后一个条目

function executeCommand(command, callback) {
  const exec = require('child_process').exec;
  return exec(command, (error, stdout, stderr) => { 
    callback(stdout);
  });
}

executeCommand('ls -l', (output) => {
  const lines = output.split(require('os').EOL);
  if (lines[lines.length - 1] === '') {
    lines.pop();
  }
  for (let i = 0; i < lines.length; i++) {
    console.log(`Line ${i}: ${lines[i]}`);
  }
});
function executeCommand(command, callback) {
  const exec = require('child_process').exec;
  return exec(command, (error, stdout, stderr) => { 
    callback(stdout);
  });
}

executeCommand('ls -l', (output) => {
  const lines = output.split(require('os').EOL);
  if (lines[lines.length - 1] === '') {
    lines.pop();
  }
  for (let i = 0; i < lines.length; i++) {
    console.log(`Line ${i}: ${lines[i]}`);
  }
});
function executeCommand(command, args, listener) {
  const spawn = require('child_process').spawn;
  const subprocess = spawn(command, args);
  subprocess.stdout.on('data', listener);
  subprocess.on('error', (err) => {
    console.error(`Failed to start subprocess: ${err}`);
  });
}

executeCommand('ls', ['-l'], (output) => {
  console.log(output.toString());
});