expr ne semble pas aimer les parenthèses (utilisées en mathématiques pour exprimer la priorité des opérateurs) :
expr 3 * (2 + 1)
bash: syntax error near unexpected token `('
Comment exprimer la priorité de l'opérateur en bash ?
Réponse acceptée :
Une autre façon d'utiliser let bash intégré :
$ let a="3 * (2 + 1)"
$ printf '%s\n' "$a"
9
Remarque
Comme l'a souligné @Stéphane Chazelas, dans bash vous devez utiliser ((...)) faire de l'arithmétique sur expr ou let pour la lisibilité.
Pour la portabilité, utilisez $((...)) comme la réponse de @Bernhard.