¿Qué está haciendo el eco?

¿Qué está haciendo el eco?

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 manpágina de bash. Tenga en cuenta las secciones paraexpansión de la historia, que analiza event designatorscomo !!, 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.

información relacionada