El Miércoles, 6 de Junio de 2007, Luis Rodrigo Gallardo Cruz escribió:
> On Wed, Jun 06, 2007 at 10:33:12PM +0200, Iñaki Baz Castillo wrote:
> > El Miércoles, 6 de Junio de 2007, Luis Rodrigo Gallardo Cruz escribió:
> > > $() captura dicha salida (es igual que ``, pero más legible)
> >
> > Y más potente pues permite recursividad en plan:
> >
> >   SALIDA=$(echo $(grep "fichero1" < lista-$(NUMERO).txt))
> >
> > cosa que con `` no se puede hacer. XD
>
> Estríctamente hablando, sí se puede. "Sólo" resulta ilegible:
>
> SALIDA=`echo \`grep algo <fichero\``

Pues no parece que funcione muy bien, algo raro hace:

* Con $( ):

~$ user=root ; SALIDA=$(cat /etc/passwd | grep $(echo $user)) ; echo $SALIDA
root:x:0:0:root:/root:/bin/bash

* Con ``:

~$ user=root ; SALIDA=`cat /etc/passwd | grep `echo $user`` ; echo $SALIDA
Modo de empleo: grep [OPCIÓN]... PATRÓN [FICHERO]...
Pruebe `grep --help' para más información.
bash: root: orden no encontrada

* Mezclado  $(``):
~$ user=root ; SALIDA=$(cat /etc/passwd | grep `echo $user`) ; echo $SALIDA
root:x:0:0:root:/root:/bin/bash

* Mezclado `$()`:
~$ user=root ; SALIDA=`cat /etc/passwd | grep $(echo $user)` ; echo $SALIDA
root:x:0:0:root:/root:/bin/bash

Vamos, que de la única forma que no funciona es metiendo `` dentro de ``.

¿Seguro que debería funcionar? siempre he pensado que no.
Bueno, no obstante resulta tan horrible que ni aunque funcione ;)

Saludos.




-- 
Iñaki Baz Castillo

Responder a