如何在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());
});