James Youngman <j...@gnu.org> writes:
>> > find /sbin /usr/sbin -executable \! -readable -print
>>
>> let's escape ! here for no reason
>
> The interpretation of and quoting rules for ! have changed
> substantially over the years (for example, it is a reserved word in
> only some sh variants, and who knows how its precise interpretation
> varied over the lifetime of csh's parser), and I have developed the
> habit of quoting in more or less all circumstances.

My personal observation is that people use *, ?, and {} a lot more than
!, and they actually don't know the details of the quoting rules for !
in their favorite shell.

I just looked up that in the Posix shell command language, ! is only
special to the point of being a reserved word like 'if', i.e., it's only
magic when it's the first word of an apparent command.

In the bash shell, ! can also start a "history substitution", which has
the elegantly simple (NOT) specification:

       !      Start  a  history substitution, except when followed by a blank,
              newline, carriage return, = or ( (when the extglob shell  option
              is enabled using the shopt builtin).

Dale

Reply via email to