test [ arg ... ]
[ [ arg ... ] ]
       Like  the  system version of test.  Added for compatibility; use
       conditional expressions instead (see  the  section  `Conditional
       Expressions').   The  main  differences  between the conditional
       expression syntax and the test and [ builtins are:   these  com‐
       mands  are  not  handled  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 ambigui‐
       ties  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 argu‐
       ments (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.
