Страницы

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

понедельник, 6 января 2020 г.

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

#linux #shell #terminal


Можно ли как-то сделать так (как-то настроить 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
>>> 


Т.е. я не пользуюсь калькулятором, а использую командную оболочку с запущенным питоном,
и хочу использовать командную оболочку как калькулятор, минимизируя промежуточные шаги
    


Ответы

Ответ 1



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

Ответ 2



$ expr 12 + 45 / 15 - 76 \* 8 + 17 -576

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

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