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.