GNU/Linux >> Tutoriales Linux >  >> Linux

¿La salida del script se almacena en un mensaje, a pesar de las declaraciones de eco separadas?

Puedes usar el readline interfaz proporcionada como parte de las API del nodo. Más información aquí https://nodejs.org/api/readline.html#readline_event_line. Usarás spawn sin embargo, tal como está, pase el stdout a readline para que pueda analizar las líneas. No estoy seguro de si esto es lo que pretendes hacer. Aquí hay un código de muestra:

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

Salida:

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

Si obtiene un error como TypeError: input.on is not a function , asegúrese de tener privilegios de ejecución en el test.sh secuencia de comandos a través de chmod +x test.sh .


Linux
  1. ¿La secuencia de comandos finaliza abruptamente con un mensaje terminado?

  2. ¿Comportamiento inesperado de un script de Shell?

  3. Me gustaría almacenar todos los argumentos de la línea de comandos en un script Bash en una sola variable

  4. ¿Cómo obtener el nombre de la rama git actual en una variable en un script de Shell?

  5. Convierta la salida ls en csv

Ejemplos de comandos echo de Linux

Cómo hacer eco en un archivo

Biblioteca de salida de scripts de shell de colores

Todas las líneas nuevas se eliminan al guardar la salida cat en una variable

Cómo agregar contenidos de múltiples archivos en un archivo

Combine múltiples comandos de Unix en una sola salida