GNU/Linux >> Linux Esercitazione >  >> Linux

L'output dello script viene memorizzato nel buffer in un messaggio, nonostante le istruzioni echo separate?

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 .


Linux
  1. Modifica lo script della shell mentre è in esecuzione

  2. Stampa l'output dell'istruzione cat nel ciclo di script bash

  3. Processo in background in Linux

  4. Converti l'output ls in csv

  5. Tutte le nuove righe vengono rimosse quando si salva l'output cat in una variabile

Esempi di comandi echo Linux

Come fare eco in un file

Vorrei memorizzare tutti gli argomenti della riga di comando in uno script Bash in una singola variabile

Come ottenere il nome dell'attuale ramo git in una variabile in uno script di shell?

Libreria di output di script di shell colorata

Combina più comandi unix in un unico output