Восклицательный знак внутри двойных кавычек приводит к странной ошибке разбора [duplicate]

На этот вопрос уже есть ответ здесь:

Странное поведение argv при передаче строки, содержащей «!!!!» 3 ответа

Почему эта командная строка работает:

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

И этот дает мне странную ошибку разбора?

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

только изменение по сравнению с первой версией заключается в том, что предложение, отображаемое в кавычках, заканчивается восклицательным знаком.Почему Bash дает мне эту ошибку во второй версии?

В случае, если это имеет значение, это вывод из:bash --version

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

Ответы на вопрос(1)

Ваш ответ на вопрос