Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

287
Vistas
Salida de captura Bash del script en ejecución

Es posible que simplemente no sepa cómo expresar lo que estoy preguntando, pero no he podido obtener las respuestas que busco.

Entonces, lo que estoy tratando de hacer es ejecutar un comando o script dentro de un script bash, capturar el resultado línea por línea y compararlo con algún valor.

He intentado cosas en el sentido de

 #!/bin/bash ./runningscript.sh | while read line; do echo "output $line" done

y

 #!/bin/bash ./runningscript.sh | {read line echo "output $line"}

ambos parecen ejecutar el script dándome la salida normal. Lo que quiero es manejar cada línea de salida de runningscript.sh desde dentro de este script bash, ya que se emite. No quiero que espere hasta que runningscript.sh termine de ejecutarse para manejarlo.

Lo siento, soy un usuario de bash muy ocasional y simple, por lo que esta puede ser la pregunta más estúpida, pero cualquier ayuda sería muy apreciada.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Tus guiones funcionan. pero la salida no aparece hasta tarde, ¿tal vez incluso después de que se completan los comandos? Esto suele deberse al almacenamiento en búfer: runningscript.sh tiene que llenar un búfer, normalmente de 4 kB, antes de que su salida se transfiera a través de la canalización al siguiente proceso de la canalización.

Una solución es usar el comando unbuffer que es parte del paquete expect :

 unbuffer runningscript.sh | something_else

Esto engaña a runningscript.sh para que piense que está escribiendo en una terminal interactiva. Como resultado, no se almacena en búfer.

Para obtener más información, consulte https://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe

Alternativamente, si tiene GNU coreutils 7.5 o superior, puede deshabilitar el almacenamiento en búfer de salida con el comando stdbuf :

 stdbuf -oO runningscript.sh | something_else
over 4 years ago · Santiago Trujillo Denunciar

0

El formulario que veo con más frecuencia es:

 while read line; do stuff to $line done < $(somescript.sh)
over 4 years ago · Santiago Trujillo Denunciar

0

Para esto, debe editar runningscript.sh y poner echo o cualquier acción que desee ponerlo en su propio bucle. La tubería no puede ayudarlo porque primero completa su primer programa y luego lo envía al segundo. Si mejora su script en ejecución, no necesitará usar un script adicional.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda