GNU/Linux >> Znalost Linux >  >> Linux

Výstup skriptu je uložen do jedné zprávy, navzdory samostatným příkazům echo?

Můžete použít readline rozhraní poskytované jako součást rozhraní API uzlů. Více informací zde https://nodejs.org/api/readline.html#readline_event_line. Budete používat spawn jak je však předejte stdout do readline aby mohl analyzovat řádky. Nejste si jisti, zda to je to, co máte v úmyslu udělat. Zde je ukázkový kód:

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

Výstup:

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

Pokud se zobrazí chyba jako TypeError: input.on is not a function , ujistěte se, že máte oprávnění ke spouštění na test.sh skript přes chmod +x test.sh .


Linux
  1. Skript náhle skončí s ukončenou zprávou?

  2. Neočekávané chování skriptu Shell?

  3. Barvení výstupu ocasu pomocí Sed?

  1. Skript Shell visí na příkazu Mail?

  2. MultiCD – Shell Script pro spojení více zaváděcích ISO do jednoho CD

  3. Chtěl bych uložit všechny argumenty příkazového řádku do skriptu Bash do jedné proměnné

  1. Upravte skript shellu, když je spuštěn

  2. Tiskový výstup příkazu cat ve smyčce skriptu bash

  3. Proces na pozadí v linuxu