autoconf: Parentheses
1
1 11.10 Parentheses in Shell Scripts
1 ==================================
1
1 Beware of two opening parentheses in a row, as many shell
1 implementations treat them specially, and Posix says that a portable
1 script cannot use `((' outside the `$((' form used for shell
1 arithmetic. In traditional shells, `((cat))' behaves like `(cat)'; but
1 many shells, including Bash and the Korn shell, treat `((cat))' as an
1 arithmetic expression equivalent to `let "cat"', and may or may not
1 report an error when they detect that `cat' is not a number. As another
1 example, `pdksh' 5.2.14 does not treat the following code as a
1 traditional shell would:
1
1 if ((true) || false); then
1 echo ok
1 fi
1
1 To work around this problem, insert a space between the two opening
1 parentheses. There is a similar problem and workaround with `$(('; see
1 ⇒Shell Substitutions.
1