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 odpowiedziDlaczego 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)