Упомянутые решения хорошо для очень простых вычислений, но очень подверженные ошибкам. Примеры:
# without spaces expr 20+5 produces literally 20+5
expr 20+5
→ 20+5
# bc's result doesn't give the fractional part by default
bc <<< 9.0/2.0
→ 4
# expr does only integer
expr 9 / 2
→ 4
# same for POSIX arithmetic expansion
echo $((9/2))
→ 4
# bash arithmetic expansion chokes on floats
echo $((9.0/2.0))
→ bash: 9/2.0: syntax error: invalid arithmetic operator (error token is ".0")
# Most `expr` implementations also have problems with floats
expr 9.0 / 2.0
→ expr: non-integer argument
Синтаксическая ошибка как последние легко замечена, но целочисленные ответы с отброшенной частью плавающей могут легко остаться незамеченными и привести к неправильным результатам.
Вот почему я всегда использую язык сценариев как Lua для этого. Но можно выбрать любой язык сценариев, с которым Вы знакомы. Я просто использую Lua в качестве примера. Преимущества
Примеры:
lua -e "print(9/2)"
→ 4.5
lua -e "print(9 / 2)"
→ 4.5
lua -e "print(9.0/2)"
→ 4.5
lua -e "print (9 /2.)"
→ 4.5
lua -e "print(math.sqrt(9))"
→ 3
Вы попробовал webmin (www.webmin.com) - у них есть модуль выделенного дискового пространства (http://download.webmin.com/download/modules/quota.wbm.gz)