
¿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 date
el 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 date
comando se ejecuta y la salida capturada reemplaza la date
cadena.