>> >    [[ ! 1 -eq 1 ]]; echo $?
>> >    [[ ! ! 1 -eq 1 ]]; echo $?
>> > 
>> > would both result in `1', since parsing `!' set CMD_INVERT_RETURN
>> > instead of toggling it.

Definitely, the section of the man page for "[[" says that "!" is a
negation operator, so "! ! foo" must yield the same results as "foo".

> I will try this as:
>
>   $ [ 1 -eq 1 ]; echo $?
>   0
>   $ ! [ 1 -eq 1 ]; echo $?
>   1
>   $ ! ! [ 1 -eq 1 ]; echo $?
>   0

That last one isn't defined by the manual page.  I'm surprised you don't
get a syntax error.

   Pipelines
       A pipeline is a sequence of one or more commands separated  by  one  of
       the control operators | or |&.  The format for a pipeline is:

              [time [-p]] [ ! ] command [ [|||&] command2 ... ]

Dale

Reply via email to