Why is it that when I run curl against a REST API, the special characters (!) in my key are interpreted by the shell? curl https://foo.my.salesforce.com/services/data/v28.0/ -H Authorization: Bearer '00DE0000000K0eM!AQYAQGgmLxxxxxxxxxxx'  -bash: !AQYAQGgmLxxxxxxxxxx': event not foundAccording to this, using a single quote should prevent bash from interpeting the stringAs a workaround, I tried using a \ character, however that causes the key to be rejected. curl https://foo.my.salesforce.com/services/data/v28.0/ -H Authorization: Bearer '00DE0000000K0eM\!AQYAQGgmLxxxxxxxxx'  [{message:Session expired or invalid,errorCode:INVALID_SESSION_ID}]How can I prevent bash from interpreting the string?
Why is bash interpreting characters that I have character escaped?
bash;quoting