GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Skriptausgabe wird trotz separater Echo-Anweisungen in einer Meldung gepuffert?

Sie können den readline verwenden Schnittstelle, die als Teil der Knoten-APIs bereitgestellt wird. Weitere Informationen hier https://nodejs.org/api/readline.html#readline_event_line. Sie verwenden spawn wie es ist, übergeben Sie die stdout bis readline damit es die Zeilen analysieren kann. Nicht sicher, ob dies das ist, was Sie beabsichtigen. Hier ist ein Beispielcode:

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);
});

Ausgabe:

"first message"
"second message"
"third message"

Wenn Sie einen Fehler wie TypeError: input.on is not a function erhalten , vergewissern Sie sich, dass Sie Ausführungsrechte für test.sh haben Skript über chmod +x test.sh .


Linux
  1. Aufteilung der Ausgabe in neue Zeilen?

  2. Verwenden von Case-Anweisungen in Bash

  3. MultiCD – Ein Shell-Skript zum Kombinieren mehrerer bootfähiger ISOs auf einer CD

  4. Wie bekomme ich den Namen des aktuellen Git-Zweigs in eine Variable in einem Shell-Skript?

  5. Konvertieren Sie die ls-Ausgabe in csv

Beispiele für Linux-Echo-Befehle

Wie Echo in Datei

Farbige Shell-Script-Ausgabebibliothek

Alle Zeilenumbrüche werden entfernt, wenn die cat-Ausgabe in einer Variablen gespeichert wird

So fügen Sie den Inhalt mehrerer Dateien in eine Datei ein

Kombinieren Sie mehrere Unix-Befehle in einer Ausgabe