expr
sepertinya tidak menyukai tanda kurung (digunakan dalam matematika untuk prioritas operator eksplisit):
expr 3 * (2 + 1)
bash: syntax error near unexpected token `('
Bagaimana cara mengekspresikan prioritas operator di bash?
Jawaban yang Diterima:
Cara lain untuk menggunakan let
bash bawaan:
$ let a="3 * (2 + 1)"
$ printf '%s\n' "$a"
9
Catatan
Seperti yang ditunjukkan oleh @Stéphane Chazelas, di bash
anda harus menggunakan ((...))
untuk melakukan aritmatika melalui expr
atau let
untuk keterbacaan.
Untuk portabilitas, gunakan $((...))
seperti jawaban @Bernhard.