El signo de exclamación dentro de comillas dobles da como resultado un error de análisis extraño [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Comportamiento extraño de argv cuando se pasa una cadena que contiene "!!!!" 3 respuestas

¿Por qué funciona esta línea de comando:

$ output='Irrelevant'; if [[ $output =~ Something ]]; then echo "I found something in the output." ; fi

¿Y este me da un extraño error de análisis?

$ output='Irrelevant'; if [[ $output =~ Something ]]; then echo "I found something in the output!" ; fi
-bash: !": event not found

lossolamente El cambio con respecto a la primera versión es que la oración que debe repetirse entre comillas termina con un signo de exclamación.¿Por qué Bash me da ese error en la segunda versión?

En caso de que importe, esta es la salida debash --version:

GNU bash, version 4.2.24(1)-release (x86_64-pc-linux-gnu)

Respuestas a la pregunta(1)

Su respuesta a la pregunta