Я ищу калькулятор, который может выполнять вычисления в самом терминале без каких-либо дополнительных префиксов и суффиксов.
Например: если я набрал что-то вроде 10000-9000 в терминале, ответ должен появиться как 1000.
Еще раз говорю, мне просто нужен быстрый калькулятор в терминале, без добавления каких-либо символов. Я знаю, что если я переключусь на Python, он сможет это сделать, но я не хочу этого таким образом.
command_not_found
крючком и попытаться передать команду вbc
/calc
/ что угодно, если она выглядит неопределенно как математика. Это все еще чувствует себя немного грязным, все же.Ответы:
Баш Арифметика
Другое возможное решение - добавить простую функцию для встроенной арифметики Bash. Поместите это в свой
.bashrc
файл, чтобы попробовать:Так что теперь вам даже не нужно
$((...))
больше, только то,=
что кажется достаточно естественным.замена
Другое дело , если вы хотите быть еще быстрее: вы можете сделать его заменить
p
с+
иx
с*
. Это будет работать для этого:Теперь вам даже не нужно Shiftбольше, только
=
перед арифметикой.Шестнадцатеричный вывод
Выходные данные могут отображаться в десятичном и шестнадцатеричном виде, если это необходимо. ( Примечание : использование
x
подстановки будет конфликтовать с0x...
шестнадцатеричным синтаксисом)Пример:
С помощью
bc
Если вы хотите немного более сложных вычислений, вы можете сделать
bc
так:Функции, предоставляемые
bc
следующим образом (и могут быть найдены изman bc
):Он также поддерживает
if
,for
,while
и переменные , такие как язык программирования , хотя , если это может быть лучше писать в файл , если вы хотите этого.Имейте в виду, что он будет подставлять
p
иx
в имена функций / переменных. Может быть, лучше просто удалить замены.С помощью
gcalccmd
Вы также можете сделать вызов функции
gcalccmd
(изgnome-calculator
) так:Кажется, что доступные функции (взяты прямо из исходного кода )
==
обозначают эквивалентные функции:источник
gcalccmd
работает не очень хорошо. Это показывает,Error 3
вероятно, из-за того, что пустые пробелы Однако этот слегка модифицированныйecho -e "$calc\nquit"| gcalccmd | sed "s:^> ::g"
function = { R -q --vanilla -e "$@" | grep -E '[^>](.*)' -o -x --color=never }
= 2 + 0x20
34 (0x22)
Вы можете выполнять простую целочисленную арифметику непосредственно в bash, используя
((...))
синтаксис, например:Существует также
bc
калькулятор, который может принимать арифметические выражения на стандартный вводbc
Программа может сделать арифметику с плавающей точкой , а такжеисточник
calc()
NL{
NLecho "$@" | bc
NL,}
где NL - новая строка. Затем вы можете ввестиcalc 1234 + 768
(печатать2002
) или любую другую формулу, котораяbc
может интерпретировать. Конечно, вы можете использовать любое имя функции, я просто подумал, что этоcalc
прекрасно сочетается с тем, что он делает.echo
:bc <<< "2*2"
Вы можете использовать
calc
. По умолчанию не устанавливается, но вы можете быстро установить его, используя следующую команду:После установки вы можете сделать любой расчет по вашему желанию:
Для получения дополнительной информации, смотрите его man-страницу
источник
man calc
иcalc help
говорит все.calc help builtin
чтобы увидеть список поддерживаемых функций, таких какsin()
К сожалению, нет более простого способа сделать это. Интерактивный интерфейс Python в командной строке лучше всего подходит для того, что вам нужно, потому что, в отличие от
apcalc
\,python
он включен в Ubuntu. Я не уверен,bc
включен ли он до сих пор, однако, Python является практическим фаворитом для этого материала.Вы можете просто запустить интерактивный
python
интерфейс в командной строке, а затем выполнить математику таким образом. Вы можете использовать это как свой калькулятор.Для этого вы открываете терминал, набираете
python
, затем Enterнажимаете кнопку.Затем, в питоне строке , которая показывает, вы можете ввести математику. Например,
10000 - 9000
. Вывод следующей строки - результат.Если вы имеете в виду, что-то, где вы просто загружаете терминал и можете сделать это ...
... тогда нет, нет способа сделать это только в терминале без чего-либо еще, потому что Bash не обрабатывает числовые аргументы, подобные этому.
источник
ipython
это немного более полезно, чем стандартная оболочка Python, когда дело доходит до выполнения вычислений и тому подобного.Я бы посоветовал вам создать простую функцию для базовых вычислений Python. Как то так в вашем
.bashrc
:Если вы хотите сделать более сложную математику, вы можете использовать следующую, которая импортирует все функции
math
модуля. (см. здесь для получения дополнительной информации)(Примечание: поскольку Python является языком программирования, некоторые вещи могут показаться странными, например,
**
для степеней и%
по модулю)В качестве альтернативы вы можете создать скрипт Python
calc
,поместите его в каталог, включенный в
PATH
переменную, и установите его исполняемый флаг, чтобы получить ту жеcalc
команду, что и выше (не нужно создавать функцию Bash для запуска скрипта Python).Если вы хотите метод в чистом Bash, используйте ответ Steeldriver. Этот ответ действительно полезен, только если вам нужны более продвинутые функции (например, из
math
), так как Python относительно медленный по сравнению с Bash.Я не уверен, что это сломает ваш «переход на python, он может это сделать, и я не хочу этого таким образом». обратите внимание, но вам не нужно вводить интерактивное приглашение, и результат доступен в Bash, поэтому этот ответ кажется верным (по крайней мере, мне).
источник
c
,?
или+
?) , так что вы будете иметь его каждый терминал при открытии.python2 -c "from __future__ import division; from math import *; print($*)"
иначе он всегда будет выполнять целочисленное деление, напримерcalc 5/2
,2
вместо вас получится2.5
. Смотрите здесь для справки: stackoverflow.com/a/183870/202504pi
иe
. Я чувствую, что это отдельный скрипт, более гибкий и переносимый. Вот простой смыслИспользуйте пакет
gcalccmd
fromgnome-calculator
(> = 13.04) илиgcalctool
(<13.04). Я думаю, что пакет установлен по умолчаниюисточник
man gcalccmd
говорит: консольный калькулятор . Просто это именно то, чего хочет ОП .. :)./bash_aliases
какalias calc='gcalccmd'
или, если вы хотите сделать одноразовые вычисления (с мгновенным ответом), вы можете добавитьalias calc='gnome-calculator -s'
- использование последнего:calc 2000/1300
илиcalc 2+3
. В этом случае нет необходимости выходить из калькулятора - он просто дает вам ответ, и вам не нужно вводитьquit
.Вот быстрый скрипт для этого:
Сохраните его как «c», затем поместите его где-нибудь на вашем пути (например, / bin), затем отметьте его как исполняемый.
Теперь вы можете выполнять вычисления в терминале следующим образом:
источник
echo "$@" | bc
вместо этого, чтобы вы могли поставить пробелы в расчетах более естественно=
вместоc
имени этой команды? Bash фактически позволяет вам использовать это как имя функции.~/bin
(ваш домашний каталогbin
) и убедиться, что они/home/yourname/bin
есть в вашемPATH
.Вот модификация соответствующей части
/etc/bash.bashrc
(в Ubuntu 10.04), которая изменитcommand_not_found
обработчик для запуска средства оценки выражений оболочки, если первый символ неизвестной команды является числом или-
или+
.Вы сможете выполнить любую арифметику оболочки таким образом; см. http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic для получения списка арифметических операторов.
Обратите внимание, что если выражение, которое вы хотите вычислить, содержит a
*
, вам придется заключать в кавычки*
с\
или или кавычки, так как оболочка выполнит расширение имени файла, прежде чем решить, какую команду запустить. То же самое для других операторов, как>>
.Вставьте это в свой
~/.bashrc
, затем напечатайте. ~/.bashrc
и попробуйте.Пример вывода: (Я набираю
cta
опечатку, просто чтобы проверить, что наш новый обработчик command_not_found все еще будет пытаться искать неизвестные команды).источник
echo $(( $@ ))
и изменить ее, вместо этого запустить одну из более продвинутых калькуляторных программ, упомянутых другими ответчиками, которые берут свои аргументы в командной строке.Другое решение, о котором я не упомянул, это Qalculate (qalc) .
для версии CLI,
для графического интерфейса.
Он имеет множество функций, таких как:
20 m / s * 12 h = 864 kilom
pi
,e
,c
,avogadro
sin(pi) = 0
,gamma(4) = 6
,5! = 120
,log(1024, 2) = 10
(x + y)^2 = x^2 + 2xy + y^2
integrate 3*x^2 = x^3
,diff sin(x), pi
help convert
,help integrate
factorial(5)
иfaculteit(5)
.Вы говорите, что хотите использовать его без префиксов, ну ... вы можете использовать его с префиксом:
$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m
а также запустить его как репл.
источник
dc
! Он является частью coreutils, поэтому он установлен на OS X, Ubuntu и почти все остальное. Это калькулятор RPN, так что если он вам не нравится, он не для вас.Очень простые команды: (man-страница имеет весь синтаксис, который я не включил. Расшифровка, кто-нибудь?)
Вам нужны только пробелы между числами. Они игнорируются во всех других случаях.
Ввод числа подталкивает его к вершине стека.
источник
42 * 5
в терминал, и заставить его выводить ответ1+1
в терминале почти никогда не будет работать. Таким образом, ваш ответ в порядкеЯ использую Octave для такого рода вещей: http://www.gnu.org/software/octave/
Это в значительной степени клон matlab (извините, если это слишком упрощенно), который можно использовать в терминале, набрав октаву. Установить sudo apt-get установить октаву
Это не совсем то, что вы хотите, но я решил добавить его в качестве альтернативы Python.
Пример использования:
источник
Мне очень нравится Wcalc. Это научный калькулятор командной строки. Легко найти в Ubuntu Software Center или просто использовать apt-get.
Он принимает аргументы командной строки, а также имеет режим «shell»:
И если кто-то, как и я, занимается разработкой, вы можете использовать GNU Octave. Он может делать все что угодно, строить графики, решать уравнения одновременно. Плюс это бесплатная альтернатива Matlab
источник
=() { wcalc "$@" }
Простой способ - вызвать Python.
Пример:
источник
python -c 'import math;print math.log(2)'
Я обнаружил, что я не могу доверять expr, bc или встроенным параметрам Shell. Поэтому я использовал Perl, который обычно устанавливается в дистрибутиве * linux
Приведенный выше расчет вычитает $ VAL1 из $ VAL2 и печатает без десятичных разрядов (0f)
Преимущество использования Perl (подробности о плюсах и минусах приведены здесь )
источник
Вы можете добавить следующую функцию в ваш файл .bashrc:
Обратите внимание, что
-l
флаг очень важен. Без этого использованиеbc
дает5 / 2 = 2
.Как отмечалось выше, вычисления могут быть выполнены с использованием
=
знака перед формулой.источник
Вы также можете использовать awk для выполнения некоторых арифметических вычислений на терминале,
источник
используйте команду "BC", а затем вы можете сделать расчет
пример
Для использования
bc
без гарантии пишите в терминалbc -q
пример
источник
Вы можете использовать bind и bash C-aи C-eдля управления выводом. Например, выполните это в вашей оболочке:
Теперь введите любую арифметическую операцию, например 10 + 15, и нажмите Ctrl+ J:
Вы получите это. Теперь, как это сделать?
bind
эта команда изменяет привязку вашего bash, как сочетания клавиш.\C-j
это bash-эквивалент Ctrl + J, вот какую комбинацию клавиш мы хотели бы добавить в нашу команду.\C-a
это приводит нас к началу линии.echo $((
это пишетecho $((
в начале.\C-e
подводит нас к концу линии))
закрывает нашу предыдущую скобку\C-m
это эквивалент возврата ключа.Вы можете написать это в свой
~/.inputrc
файл:Конечно, другие ответы тоже действительны! Просто немного подправил:
"\C-j": "\C-aecho " \C-e " | bc \C-m"
"\C-j": "\C-acacl \C-m"
"\C-j": "\C-apython3 -c "print( \C-e )" \C-m"
Вы можете изменить Ctrl + J на все что угодно, но помните, старайтесь не менять его на то, что уже имеет привязку;).
Ресурс:
источник
В прошлом я использовал
wcalc
небольшую программу под названиемe
, за которую практически невозможно было найти Google. Теперь я использую скрипт Python для этого, который использует некоторые функции,e
такие как квадратные скобки.wcalc
все еще хорош, потому что он может выполнять произвольную точность и преобразование единиц, но я почти никогда не использую эти функции.Вот как это использовать (при условии, что скрипт был сохранен как
e
и помещен где-то в$PATH
):источник
Существует один шаг, чтобы выполнить именно то, что вы хотите. Все, что вам нужно сделать, это установить
shell
для вашей учетной записи/bin/bc
.источник
Вы также можете использовать
printf
встроенную оболочку для выполнения арифметических вычислений на терминале.Пример:
источник
Вы можете использовать интерпретатор Python для расчета. Вот учебник о том, как это сделать .
Python 2 и python 3 установлены в Ubuntu по умолчанию.
источник
Создать калькулятор терминала
Поместите следующее в ваш файл .bashrc
Или запустите его в командной строке. Теперь «calc» из оболочки будет работать следующим образом:
Все функции с "(" или ")" должны быть заключены в кавычки.
источник