Hi,
> However, in bash on my Debian machine:
>
> chris@T42:~$ echo "Don't do that!"
> bash: !": event not found
>
> Why is the ' in Don't protected by ", while ! is not? Or am I missing
> something?
Yet if you put that command in a script it will work as expected.
Even more puzzling :-)
It's because Bash has included a Cshellism and uses ! to introduce a
history expansion. History expansion is turned on by default for
interactive shells but not for scripts.
To turn history expansion off and get the result you expect.
$ set +o history
$ echo "Don't do that!"
Don't do that!
Turning history expansion on inside scripts will get you fired from
any company where I have that option.
--
Bob Dunlop