Puoi usare il readline
interfaccia fornita come parte delle API del nodo. Maggiori informazioni qui https://nodejs.org/api/readline.html#readline_event_line. Userai spawn
come è comunque passa il stdout
a readline
in modo che possa analizzare le linee. Non sono sicuro se questo è ciò che intendi fare. Ecco un esempio di codice:
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);
});
Uscita:
"first message"
"second message"
"third message"
Se ricevi un errore come TypeError: input.on is not a function
, assicurati di disporre dei privilegi di esecuzione su test.sh
script tramite chmod +x test.sh
.