Gracias por las respuestas, han sido de mucha ayuda. saludos
jar On Mon, 19 Apr 2004, Horst von Brand wrote: > =?X-UNKNOWN?Q?Jos=E9_Angel_Rodr=EDguez_Leyva?= <[EMAIL PROTECTED]> dijo: > > 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. > > Es bien diferente: > > less lindo-archivito > > (muestra el contenido de lindo-archivito, porque less(1) lee de su(s) > argumentos(s) si los hay) que > > ls -la | less > > (muestra la salida de ls(1), si no hay argumentos less(1) lee su entrada > standard) o que > > less <<FIN > Aca va chachara, que less(1) recibira en la entrada standard > Es una manera de crear "archivos" a ser leidos por un programa > invocado en un script, pero sin tener que tontear con archivos > temporales. Lineas aca salen tal cual. > FIN > > (less(1) nuevamente sin argumentos) o que > > less <<<"Algun hermoso string" > > (muestra "Algun hermoso string", que es ahora la entrada de less(1), > nuevamente sin argumentos) > > [Alguna idea absurda para <<<<?] > > [...] > > > > mail -s "Asunto..." addr <<< $(sed s/expr1/expr2/ archivo) > > > > Aun asi me quedo sin entender porque s'i funciona con << o <<< y no con < > > Es que > > cmd1 < $( cmd2 ) > > significa: Ejecute "cmd2", el resultado dejelo como argumentos (uno por > linea) interpolados; si cmd diera el nombre de un archivo, ese recibiria > cmd1 en su stdin. En cambio: > > cmd1 <<< $( cmd2 ) > > ejecuta cmd2, igual que antes; luego <<< concatena (sin saltos de linea!) > lo que resulte, y pasa eso como entrada a cmd1. Es parecido a > > cmd2 | tr -d '\n' | cmd1 > > solo que seguramente mas ineficiente, y probablemente estalle si cmd2 > genera salida muy voluminosa (tr(1)). > -- > 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 > >

