Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Sep 2016 04:35:16 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 206295] sh(1)/test(1) bug (precedence)
Message-ID:  <bug-206295-8-jPUKFs5TSW@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-206295-8@https.bugs.freebsd.org/bugzilla/>
References:  <bug-206295-8@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D206295

--- Comment #2 from nibbana@gmx.us ---

>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
pass
$ [ ! "" -a "" -o ! "" -a "" ] && echo pass || echo fail
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.

GRAMMAR AMBIGUITY
     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 su=
b-
     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.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-206295-8-jPUKFs5TSW>