expr
parece que no le gustan los paréntesis (usados en matemáticas para explicitar la prioridad del operador):
expr 3 * (2 + 1)
bash: syntax error near unexpected token `('
¿Cómo expresar la prioridad del operador en bash?
Respuesta aceptada:
Otra forma de usar let
bash integrado:
$ let a="3 * (2 + 1)"
$ printf '%s\n' "$a"
9
Nota
Como señaló @Stéphane Chazelas, en bash
deberías usar ((...))
hacer aritmética sobre expr
o let
para la legibilidad.
Para la portabilidad, use $((...))
como la respuesta de @Bernhard.