I am reading the bash source code, and the BNF grammar for bash would be:
<pipeline_command> ::= <pipeline>
| '!' <pipeline>
| <timespec> <pipeline>
| <timespec> '!' <pipeline>
| '!' <timespec> <pipeline>
<pipeline> ::=
<pipeline> '|' <newline_list> <pipeline>
| <command>
Does this means ! command is a kind of pipe too.
! ls works, however it's the same as ls.
! time ls works too.
That's quite different to | pipe.
How to use ! in bash? Is it a pipe?
! lsandlsare the same; the exit status are different.