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)