--- Comment #2 from ---

>From the test(1) manpage:

     ! expression  True if expression is false.

NOTE: it is stating that (based on the use of the term 'expression',
that ! should have higher precedence than -a/-o ... there is no
indication that one should beware of any -a/-o operators that follow.
Also, this bizzare behavior only applies to the -a operator, not -o,
so that makes the current implementation doubly strange, and it only
applies to a 1st and not in further instances, eg:

"! expression -a expression -o ! expression -a expression"

$ [ ! "" -a "" ] && echo pass || echo fail
$ [ ! "" -a "" -o ! "" -a "" ] && echo pass || echo fail

     expression1 -a expression2
                   True if both expression1 and expression2 are true.

     expression1 -o expression2
                   True if either expression1 or expression2 are true.

     ( expression )
                   True if expression is true.

     The -a operator has higher precedence than the -o operator.

     The test grammar is inherently ambiguous.  In order to assure a degree of
     consistency, the cases described in the IEEE Std 1003.2 (``POSIX.2''),
     section D11.2/4.62.4, standard are evaluated consistently according to
     the rules specified in the standards document.  All other cases are sub-
     ject to the ambiguity in the command semantics.

NOTE: unfortunately, these documents are not easily accessible, and users
are, in a practical sense, forced to rely on the manpages.

You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________ mailing list
To unsubscribe, send any mail to ""

Reply via email to