[eside-ghost] Bash - Filtrando salida de proceso mientras se guarda en variable

Jon Valdés juanval en gmail.com
Mie Ago 1 12:38:48 CEST 2012


2012/8/1 Pablo Garaizar Sagarminaga <garaizar en deusto.es>:
> Aupa,
>
> El Wed, 1 Aug 2012 12:04:09 +0200
> Bruno Gonzalez <stenyak en gmail.com> comentaba:
>
>> Uhmm... por si no es muy obvio, se me ha olvidao decir que ese script
>> toma como input a stdout. Es decir lo guardas como "filter.sh", y
>> luego lo usas tal que:
>> $ comando.sh | ./filter.sh > /tmp/passthrough_del_stdout.txt
>
> Si Jon lo quiere dentro de su script, siempre puede cambiar el
>
> while read line
>
> por:
>
> comando | while read line
>
> y dejar el resto igual. Creo que debería funcionar :-)

Lo he estado intentando, y no lo consigo.
Sospecho que el "while" crea un entorno distinto que no comparte las
variables con el script original, porque esto no tira:

output=""
find . | while read line
do
    printf "$line\n"
    output="$output\n$line"
done

echo "********************"
printf "$output\n"

He probado a ponerle un export al output dentro del while, y tampoco.


Más información sobre la lista de distribución eside-ghost