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
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