! followed by a ; or another terminator is interpreted as an history expansion with no pattern that can never match anything.
$ !; echo hi bash: !: event not found $ !&& echo hi bash: !: event not found It should not be intepreted as a history expansion that cannot possibly match anything; it should work the same it works if there is a space after `!', or if histexpand is off. $ ! ; echo "$?" hi 1 hi $ ! && echo hi bash: syntax error near unexpected token `&&' o/ emanuele6