bash: mail addr <( echo '..' )
=?X-UNKNOWN?Q?Jos=E9_Angel_Rodr=EDguez_Leyva?=
jar en villazul.ltu.sld.cu
Lun Abr 19 15:52:01 CLT 2004
On Mon, 19 Apr 2004, Mauricio Vergara Ereche wrote:
> > 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.
No he estudiado como funcionan la entrada y salida estandar a nivel del
comando en el shell, asi que no puedo entender en que radica la diferencia
en pasarle un fichero o una lista para el comando que los recibe por la
entrada estandar. A fin de cuentas no serian la misma cosa? Es evidente
que hay diferencias, supongo que debo investigar para poder comprenderlo.
>
> 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")
>
El no probar esta variante explicada en el man es la evidencia de no haber
tenido cuidado al leerlo. Sabia que existia <<< pero pensaba que era igual
que << pero para una sola linea e igualmente sin expansion. Que tonteria
por mi parte.
> mail -s "Asunto..." addr <<< $(sed s/expr1/expr2/ archivo)
Aun asi me quedo sin entender porque s'i funciona con << o <<< y no con <
saluds
jar
Más información sobre la lista de distribución Linux