[eside-ghost] Bash - Filtrando salida de proceso mientras se guarda en variable
Bruno Gonzalez
stenyak en gmail.com
Mie Ago 1 11:47:42 CEST 2012
Esto debería funcionar más o menos. Ándate con ojo de usar echo vs
printf, que a algunos les mola meter saltos de línea cuando no se les
pide, etc etc (eso si necesitas que el stream de texto pase 100%
intacto).
También ten en cuenta que solo se gestiona stdout (no stderr), y
además creo que no era técnicamente posible pipear ambas salidas a la
vez con bash. La última vez que me metí en berenjenales de este tipo
hace un par de años, tuve que tirar de ksh para solucionarlo...
output=""
while read line
do
printf "$line\n"
output="$output\n$line"
done
#after EOS
printf $output #or whatever
2012/8/1 Jon Valdés <juanval en gmail.com>:
> Buenas a todos,
>
> Ando haciendo conjuros con Bash, y necesito una cosa un poco rara.
> Necesito que la salida de un comando vaya saliendo en tiempo real por
> consola mientras se almacena en una variable de bash. La idea es,
> cuando termine el comando, sacar un resumen de todo lo que ha salido,
> filtrando esa salida con un grep.
>
> Vamos, algo como esto:
>
> output=`comando.sh`
> echo $output | grep "***"
>
> Pero haciendo que la salida de output vaya saliendo en tiempo real por
> stdout a la vez que se guarda en $output.
>
> Lo único que se me ha ocurrido es tirar de "tee", pero preferiría no
> tener que usar un archivo temporal si es posible.
>
> ¿Alguna idea?
>
> Enga, muchas gracias!!
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
--
Saludos,
Bruno González
_______________________________________________
Jabber: stenyak AT gmail.com
http://www.stenyak.com
Más información sobre la lista de distribución eside-ghost