GNU/Linux >> Tutoriels Linux >  >> Linux

La sortie du script est mise en mémoire tampon dans un seul message, malgré des instructions d'écho distinctes ?

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 .


Linux
  1. Le script se termine brusquement avec un message terminé ?

  2. Comportement inattendu d'un script shell ?

  3. Coloriser la sortie de queue avec Sed ?

  4. Le script shell se bloque sur la commande de messagerie ?

  5. Utilisation des déclarations de cas dans Bash

Exemples de commandes echo Linux

Comment faire écho dans le fichier

Je voudrais stocker tous les arguments de ligne de commande d'un script Bash dans une seule variable

Convertir la sortie ls en csv

Bibliothèque de sortie de script shell coloré

Combinez plusieurs commandes Unix en une seule sortie