оценивать аргументы как выражение  (evaluate arguments as an expression)
  
Использование в приложениях (Application usage)
The expr utility has a rather difficult syntax:
        *  Many of the operators are also shell control operators or
           reserved words, so they have to be escaped on the command
           line.
        *  Each part of the expression is composed of separate
           arguments, so liberal usage of <blank> characters is
           required. For example:
                    ┌─────────────────┬───────────────────────┐
                    │    Invalid      │         Valid         │
                    ├─────────────────┼───────────────────────┤
                    │expr 1+2         │ expr 1 + 2            │
                    │expr "1 + 2"     │ expr 1 + 2            │
                    │expr 1 + (2 * 3) │ expr 1 + \( 2 \* 3 \) │
                    └─────────────────┴───────────────────────┘
       In many cases, the arithmetic and string features provided as
       part of the shell command language are easier to use than their
       equivalents in expr.  Newly written scripts should avoid expr in
       favor of the new features within the shell; see Section 2.5,
       Parameters and Variables and Section 2.6.4, Arithmetic Expansion.
       After argument processing by the shell, expr is not required to
       be able to tell the difference between an operator and an operand
       except by the value. If "$a" is '=', the command:
           expr "$a" = '='
       looks like:
           expr = = =
       as the arguments are passed to expr (and they all may be taken as
       the '=' operator). The following works reliably:
           expr "X$a" = X=
       Also note that this volume of POSIX.1‐2017 permits
       implementations to extend utilities. The expr utility permits the
       integer arguments to be preceded with a unary minus. This means
       that an integer argument could look like an option.  Therefore,
       the conforming application must employ the "--" construct of
       Guideline 10 of the Base Definitions volume of POSIX.1‐2017,
       Section 12.2, Utility Syntax Guidelines to protect its operands
       if there is any chance the first operand might be a negative
       integer (or any string with a leading minus).
       For testing string equality the test utility is preferred over
       expr, as it is usually implemented as a shell built-in. However,
       the functionality is not quite the same because the expr = and !=
       operators check whether strings collate equally, whereas test
       checks whether they are identical. Therefore, they can produce
       different results in locales where the collation sequence does
       not have a total ordering of all characters (see the Base
       Definitions volume of POSIX.1‐2017, Section 7.3.2, LC_COLLATE).