Vous pouvez utiliser le readline
interface fournie dans le cadre des API de nœud. Plus d'informations ici https://nodejs.org/api/readline.html#readline_event_line. Vous utiliserez spawn
car c'est pourtant passer le stdout
à readline
afin qu'il puisse analyser les lignes. Je ne sais pas si c'est ce que vous avez l'intention de faire. Voici un exemple de code :
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);
});
Sortie :
"first message"
"second message"
"third message"
Si vous obtenez une erreur comme TypeError: input.on is not a function
, assurez-vous que vous disposez des privilèges d'exécution sur le test.sh
script via chmod +x test.sh
.