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 ... |