expr 括弧が好きではないようです(数学で演算子の優先順位を明示するために使用されます):
expr 3 * (2 + 1)
bash: syntax error near unexpected token `('
オペレーターの優先順位をbashで表現する方法は?
承認された回答:
letを使用する別の方法 bashビルトイン:
$ let a="3 * (2 + 1)"
$ printf '%s\n' "$a"
9
注
@StéphaneChazelasが指摘したように、bash ((...))を使用する必要があります exprに対して算術演算を行う またはlet 読みやすさのために。
移植性のために、$((...))を使用してください @Bernhardの答えのように。