[Назад] [Дальше] [Оглавление]

      evaluate [-uuser|-a] [-f format] [-c] [--] 'formula'

Модуль вычисляет арифметические выражения по заданной формуле.

По умолчанию выводит результат в виде десятичной дроби или экспоненциальной записи - что более компактно (согласно спецификации printf(3) `%g'). При желании можно задать иной формат вывода с помощью ключа `-f' - необходимо лишь помнить, что допустимо использовать только форматы для чисел с плавающей запятой. Задание формата `%d' не означает вывода целого числа - для вывода только целой части можно воспользоваться форматом `%.0f'. Более сложные функции форматирования доступны в модуле mkreport.

В случае, если первый аргумент формулы записан со знаком минус, модуль не может отличить его от опции. Чтобы этого избежать можно применить признак окончания опций - `--' . Пример:

bash# evaluate -f'%.2f' '-1+4'
evaluate: illegal option -- 1
..
bash# evaluate -f'%.2f' -- '-1+4'
3.00
bash#

Если задан ключ `-c' , то вывод результата вычисления выражения не происходит - вместо этого в систему возвращается соответствующий статус. Если результатом вычисления был логический 0, то возвращается код 2; в противном случае - код 0, означающий успех. Этой возможностью удобно пользоваться в собственных модулях расширения. Например на языке sh:

...
# Проверка остатка счета
#
if evaluate -uuser -c 'total() < 10'
 then
  echo "Остаток меньше 10!!"
fi
...


[Назад] [Дальше] [Оглавление]