On 2007-04-30 15:44:34 +0200, Vincent Lefevre wrote:
> But now, "in this case" is ambiguous. The man page should probably
> have been said "when there are 3 arguments". And it should have been
> said first. And above, instead of saying "If the second argument is
> one of the binary conditional operators listed above under CONDITIONAL
> EXPRESSIONS" (which is ambiguous, as seen), the man page should have
> said "If the second argument is -a or -o".

Also, the case with 5 or more arguments is not clear either.
In fact, I don't know if this is a bug (due to a primitive parser)
or a bad documentation.

[EMAIL PROTECTED]:~$ [ true -a \( ! -a \) ] && echo OK
bash: [: `)' expected, found ]

It is not clear whether the second -a is
  1. -a <file> where <file> is ')';
  2. -a <file> where <file> is a missing parameter[*], ')' being
     part of the ( expr ) form;
  3. the string '-a' (assuming there are no parameters left, see
     point 2).

[*] The man page says:

    See the description of the test builtin command (section SHELL
    BUILTIN COMMANDS below) for the handling of parameters (i.e.
    missing parameters).

But nothing is described in the test builtin concerning missing
parameters.

The parser seems to follow point 1. But a grammar-based parser would
follow point 2 or 3.

-- 
Vincent Lefèvre <[EMAIL PROTECTED]> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Reply via email to