Ambos
echo `date`
y
echo "`date`"
mostrará la fecha. El resultado de este último se parece al resultado de ejecutarse datepor sí mismo.
Sin embargo, hay una diferencia: el que está entre "comillas "se enviará echocomo un argumento único. Las comillas encapsulan la salida de todo el comando como un argumento. Como echosolo imprime sus argumentos en orden, con espacios en el medio, básicamente se verá igual.
Aquí hay un ejemplo de la sutil diferencia:
echo `date`
produce:
Fri Nov 1 01:48:45 EST 2013
pero:
echo "`date`"
produce:
Fri Nov 1 01:48:49 EST 2013
Tenga en cuenta que los dos espacios posteriores Novse redujeron a uno sin las comillas. Esto se debe a que el shell analiza cada elemento separado por espacios y envía el resultado a echo como 6 argumentos. Cuando lo cita, echo recibe un solo argumento y las citas retienen el espacio.
Esto se vuelve mucho más importante en comandos que no sean echo. Por ejemplo, imagine un comando fooque quiere dos argumentos: una fecha y una dirección de correo electrónico.
Esto funcionará en ese escenario:
foo "`date`" joeuser@example.com
Pero esto confundirá el script enviándole 7 argumentos:
foo `date` joeuser@example.com