Страницы

Поиск по вопросам

среда, 13 февраля 2019 г.

Как выполнять простейшие арифметические действия в shell?

Можно ли как-то сделать так (как-то настроить shell), что бы можно было в терминале набирать выражения вида a * b, a + b, a - b, a / c, где a и b- числа, и что бы это выражение вычислялось?
Т.е. что бы можно было делать вот так:
dzmitry@mycomp:~$ 12 * 45
А не запуская, например, питон:
dzmitry@mycomp:~$ py Python 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 12 * 45 540 >>>
Т.е. я не пользуюсь калькулятором, а использую командную оболочку с запущенным питоном, и хочу использовать командную оболочку как калькулятор, минимизируя промежуточные шаги


Ответ

Можно ли как-то сделать так (как-то настроить shell)
увы, «настроить» невозможно. оболочка предназначена для выполнения команд, а не для вычисления арифметических выражений.
для таких вычислений нужна специализированная на этом программа. например (из самых распространённых) bc, dc и т.п.
bc
по умолчанию округляет результат до целых чисел. с помощью команды scale=число можно задать количество знаков после запятой. чтобы каждый раз не вводить эту команду, имеет смысл записать её в конфигурационный файл ~/.bcrc
dc
в этом калькуляторе используется обратная польская нотация и, соответственно, стек. пример:
5 k #задать количество знаков после запятой 2 3 / p # поместить в стек 2 и 3, выполнить деление /, напечатать верхушку стека p .66666 # это результат

Комментариев нет:

Отправить комментарий