
Recientemente, noté que los ecos en los que incluyo muchos "!" resulta en cosas raras. Por ejemplo: echo !!
me da:
echo rm -r * 1000
rm -r * 1000
( rm -r *
fue el último comando que ejecuté antes de escribirlo). ¿Por qué sucede esto? ¿Existe alguna forma de desactivarlo?
Respuesta1
Te topaste con shell expansion
: el shell analizará tu comando y reemplazará los comodines especiales con otra información. Pruebe echo '!!'
(comillas simples) para comprender qué pueden hacer la expansión del shell y las comillas.
Puede leer más sobre la expansión del shell en la man
página de bash
. Tenga en cuenta las secciones paraexpansión de la historia, que analiza event designators
como !!
, yexpansión, que analiza otras formas de expansión de caparazón. La sección sobrecitandoexplica el comportamiento de los mecanismos de comillas de bash y la diferencia entre cómo se evalúan las cadenas entre comillas simples y dobles.