bash: mail addr <( echo '..' )
Horst von Brand
vonbrand en inf.utfsm.cl
Lun Abr 19 13:43:20 CLT 2004
Mauricio Vergara Ereche <mave007 en inf.utfsm.cl> dijo:
> On Mon, Apr 19, 2004 at 10:22:05AM -0400, José Angel Rodríguez Leyva wrote:
> > Esto es mas bien una duda existencial. No he leido mucho mas alla que man
> > del bash y se me queda corto para entender este problema.
> [...]
> > mail -s "Asunto..." addr <( sed s/expr1/expr2/ archivo )
> El redireccionador "<" espera la entrada de un archivo por el descriptor
> 0... Al agregarle el paréntesis le estas diciendo que esperará que se le
> entregue una lista.
????
> La forma de solucionar esto, es pasándole el resultado de la expresión (Ya
> sea evaluándola con $() o comillas invertidas) lo que hiciste con sed a
> través del redireccionador <<< (Busca en el manual de bash en la
> parte de REDIRECTION, donde sale "Here strings")
>
> mail -s "Asunto..." addr <<< $(sed s/expr1/expr2/ archivo)
Segun bash(1), <<< recibe _un_ _string_ que pasara como entrada al
comando. Salvo que archivo en el ejemplo sea una unica linea, eso no es un
string (es una sarta de estos). Hummm... y en tal caso, bash(1) aca (FC1,
bash-2.05b-34) los toma concatenados. O sea, junta las lineas y eso entrega
como _una_ linea de entrada. No es exactamente lo pedido, supongo...
[Y aprendi otra cosa totalmente inutil hoy ;-]
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
Más información sobre la lista de distribución Linux