Puedes usar el readline
interfaz proporcionada como parte de las API del nodo. Más información aquí https://nodejs.org/api/readline.html#readline_event_line. Usarás spawn
sin embargo, tal como está, pase el stdout
a readline
para que pueda analizar las líneas. No estoy seguro de si esto es lo que pretendes hacer. Aquí hay un código de muestra:
var process = require('child_process');
const readline = require('readline');
var child = process.spawn('./test.sh');
// Use readline interface
const readlinebyline = readline.createInterface({ input: child.stdout });
// Called when a line is received
readlinebyline.on('line', (line) => {
line = JSON.stringify(line.toString('utf8'));
console.log(line);
});
Salida:
"first message"
"second message"
"third message"
Si obtiene un error como TypeError: input.on is not a function
, asegúrese de tener privilegios de ejecución en el test.sh
secuencia de comandos a través de chmod +x test.sh
.