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の答えのように。