No puedo darme cuenta de lo que está mal con: $ echo '`date`'

No puedo darme cuenta de lo que está mal con: $ echo '`date`'

¿Qué sucede cuando se ejecuta el siguiente comando? Explique por qué y cómo solucionarlo:

$ echo ‘`date`’

Respuesta1

Supongo que estás corriendo

echo '`date`'

(tenga en cuenta las comillas simples) y esperando ver dateel resultado. El shell nunca expande cadenas entre comillas simples; deberías usar comillas dobles en su lugar:

echo "`date`"

o simplemente déjalos

echo `date`

Todo esto equivale a

date

Sin embargo, aparte de la división del caparazón y la formación de globos (como lo señalaStéphane Chazelas), que colapsará los espacios en blanco de forma predeterminada.

Respuesta2

Como se publicó, las comillas exteriores son caracteres Unicode U+2018 y U+2019. Estas NO son comillas simples regulares y no tienen ningún significado especial y simplemente se repiten:

$ echo ‘`date`’
‘Fri Apr 7 19:55:15 EEST 2017’
$ 

Dentro de estas comillas hay comillas invertidas para la sustitución de comandos de shell. El datecomando se ejecuta y la salida capturada reemplaza la datecadena.

información relacionada