Команды для арифметических операций в bash оказались немного специфичны, точнее не команды, а способ их оформления. Приведу пример:
#!/bin/bash
a=73
b=22
c=$a+$b
echo $c
По идее должно выдать 95, но выдает 73+22, странно. Выходит арифметическая операция сложения не прошла. Посмотрев в учебник, разобрался. Перед арифметическими операциями надо написать ключевое слово let:
#!/bin/bash
a=73
b=22
let c=$a+$b
echo $c
Выдаст 95. Разобрались. Посмотрим на способности интерпретатора работать с разными типами данных:
#!/bin/bash
a="аа"
b=22
let c=$a+$b
echo $c
Т. е. я пытаюсь прибавить строку к числу. PHP бы попытался привести их к одному типу данных и вывел бы 22, тоже самое делает и bash. Мне это нравится :) Другие арифметические операции возвращают примерно такой же результат, примеры излишни.
В общем, арифметические операторы стандартны:
+ сложение
- вычитание
* умножение
/ деление
% остаток от деления
** возведение в степень (специфичный оператор, нигде пока такого не встречал)
+= увеличивает значение переменной на заданное число
-= уменьшение значения переменной на заданное число
*= умножить значение переменной на заданное число, результат записать в переменную
/= уменьшение значения переменной в заданное число раз
%= найти остаток от деления значения переменной на заданное число, результат записать в переменную