Ambos
echo `date`
y
echo "`date`"
mostrará la fecha. El resultado de este último se parece al resultado de ejecutarse date
por sí mismo.
Sin embargo, hay una diferencia: el que está entre "
comillas "
se enviará echo
como un argumento único. Las comillas encapsulan la salida de todo el comando como un argumento. Como echo
solo 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 Nov
se 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 foo
que 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