Wykrzyknik wewnątrz podwójnego cudzysłowu powoduje dziwny błąd analizy [duplikat]

To pytanie ma już tutaj odpowiedź:

Dziwne zachowanie argv podczas przekazywania ciągu zawierającego „!!!!” 3 odpowiedzi

Dlaczego ten wiersz poleceń działa:

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

A ten daje mi dziwny błąd analizy?

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

Thetylko zmiana od pierwszej wersji polega na tym, że zdanie, które ma być echo w cudzysłowie, kończy się wykrzyknikiem.Dlaczego Bash podaje mi ten błąd w drugiej wersji?

W przypadku, gdy to ma znaczenie, to jest wyjściebash --version:

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

questionAnswers(1)

yourAnswerToTheQuestion