El Martes, 25 de Abril de 2006 16:46, [EMAIL PROTECTED] escribió: > Quoting Iñaki <[EMAIL PROTECTED]>: > > Claro que sí, de hecho había sido un descuido. Ya había usado > > anteriormente cosas parecidas lo que pasa es que (no sé porqué) yo > > prefiero usar: $(comando...) > > en vez de: > > `comando...` > > pero no me preguntes porqué. El caso es que siempre que lo he probado me > > da idénticos resultados pero en esta lista ya he oído que tienen algún > > matiz que los diferencia. > > En ese caso ambos dan el mismo resultado en bash, pero si utilizas $(...) > el script no será portable a los shell sh y ksh clásicos, lo que te dará > igual si no vas a usar más que linux o algún Unix comercial muy moderno. Si > administras > algún Unix de hace añitos entonces agradecerás haber hecho el script usando > `..` > porque si no te toca ver como instalar bash a dicho Unix o mantener una > versión > distinta del script que ya utilizabas en el resto de equipos. > > Por otro lado, $( ...) tiene en ciertos casos una enoooorme ventaja: puedes > anidarlos, cosa que con `...` es imposible. Ejemplo: > [EMAIL PROTECTED] domingo]$ cat uno > 1 > [EMAIL PROTECTED] domingo]$ cat dos > 2 > [EMAIL PROTECTED] domingo]$ echo "hola-`cat uno`" > hola-1 > [EMAIL PROTECTED] domingo]$ echo "hola-$(cat uno)" > hola-1 > [EMAIL PROTECTED] domingo]$ cat cual > uno > [EMAIL PROTECTED] domingo]$ echo "hola-$(cat $(cat cual))" > hola-1 > > Si ahora > [EMAIL PROTECTED] domingo]$ cat cual > dos > pues tendremos > [EMAIL PROTECTED] domingo]$ echo "hola-$(cat $(cat cual))" > hola-2 > > En el ejemplo conseguimos en una sola línea y comando que a la cadena hola > se le añada el contenido de un fichero cuyo nombre (el del fichero) es > seleccionado a partir del contenido de otro fichero. Hay bastante > situaciones en las que es útil para ahorrar líneas de script o pq no me > queda más remedio que hacerlo en un único comando entre pipes disponer de > la salida de un comando > tal que la cadena de texto que define el comando a ejecutar depende a > su vez de > la salida de otro comando (o de varios al mismo nivel o de más > profundidad). Je, je, así podrás hacer cosas como: > comando1 "texto...$($(comando2) -res $(comando3))..mas texto" > > UN SALUDO DOMINGO S R
Otra lección impresionante y muy didáctica. Muchas gracias seguro que en nombre de todos. -- intentando mejorar Konqueror: http://konqueror4.linuxdevel.net y si te gusta puedes votar: ;) http://www.kde-look.org/content/show.php?content=36385

