test [ arg ... ]
[ [ arg ... ] ]
       Like  the system version of test.  Added for compatibility; use con-
       ditional expressions instead (see the section  `Conditional  Expres-
       sions').   The  main  differences between the conditional expression
       syntax and the test and [ builtins are:  these commands are not han-
       dled syntactically, so for example an empty variable  expansion  may
       cause  an argument to be omitted; syntax errors cause status 2 to be
       returned instead of a shell error; and arithmetic  operators  expect
       integer arguments rather than arithmetic expressions.

       The  command  attempts  to  implement POSIX and its extensions where
       these are specified.  Unfortunately there are intrinsic  ambiguities
       in  the  syntax;  in particular there is no distinction between test
       operators and strings that resemble them.  The standard attempts  to
       resolve  these for small numbers of arguments (up to four); for five
       or more arguments compatibility cannot  be  relied  on.   Users  are
       urged  wherever  possible to use the `[[' test syntax which does not
       have these ambiguities.
