Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Cuál es la diferencia entre $(comando) y `comando` en Bash?

16 de enero de 2011

En bash/sh/ksh puedo usar lo siguiente para almacenar en una variable el resultado de un comando:

VARIABLE=$(comando)
VARIABLE=`comando`

¿Cuál es la diferencia entre estas dos alternativas, si es que hay alguna?

Estás leyendo una traducción autorizada de la pregunta Shell Programming: What's the difference between $(command) and `command` planteada por hhafez en StackOverflow.

Respuestas

#1

Aunque son equivalentes, el método de encerrar el comando con comillas se considera hoy en día obsoleto y sólo debería usarse $().

El principal motivo es que con $() resulta muy sencillo anidar varias ejecuciones de comandos. Ejemplo:

VARIABLE = $(echo foo$(echo bar))

Con las comillas tendrías que escapar las comillas que se encuentran anidadas y eso empeora mucho su legibilidad:

VARIABLE = `echo foo\`echo bar\``

@librosweb

7 octubre 2014, 10:15