Утилиты квоты

Упомянутые решения хорошо для очень простых вычислений, но очень подверженные ошибкам. Примеры:

# 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
1
06.04.2013, 04:29
1 ответ

Вы попробовал webmin (www.webmin.com) - у них есть модуль выделенного дискового пространства (http://download.webmin.com/download/modules/quota.wbm.gz)

1
27.01.2020, 23:54

Теги

Похожие вопросы