Любой калькулятор командной строки для Ubuntu?

Я ищу калькулятор, который может выполнять вычисления в самом терминале без каких-либо дополнительных префиксов и суффиксов.

Например: если я набрал что-то вроде 10000-9000 в терминале, ответ должен выйдет как 1000.

Еще раз говорю: мне просто нужен быстрый калькулятор в терминале, без добавления каких-либо символов. Я знаю, если я переключусь на Python, он может это сделать, но я не хочу этого таким образом.

1
задан 20 November 2013 в 18:12

22 ответа

Вы можете сделать простую целочисленную арифметику изначально в bash с использованием синтаксиса ((...)), например

$ echo $((10000-9000))
1000

Также есть калькулятор bc, который может принимать арифметические выражения на стандартном входе [!d1 ]

$ echo "10000-9000" | bc
1000

Программа bc также может выполнять арифметику с плавающей запятой

$ echo "scale = 3; 0.1-0.09" | bc
.01
88
ответ дан 24 May 2018 в 15:08
  • 1
    Это, вероятно, самое близкое, что вы можете получить. Чтобы сократить дополнительную настройку (хотя и не устранить ее полностью), вы можете поместить функцию в ваш ~ / .bashrc: calc() NL { NL echo "$@" | bc NL }, где NL - это новая строка. Затем вы можете ввести calc 1234 + 768 (печатает 2002) или любую другую формулу, которую bc может интерпретировать. Вы можете, конечно, использовать любое имя функции, я просто подумал, что calc прекрасно подходит к тому, что это делает. – Michael Kjörling 18 November 2013 в 15:43
  • 2
    как только python будет лучше, чем эхо все время. мое мнение. – Ten-Coin 18 November 2013 в 18:07
  • 3
    Вы также можете использовать bc интерактивно, если вам не нужно эхо по другой причине: просто запустите bc и введите свое выражение. Введите Ctrl-D в свою строку, чтобы выйти. – Useless 18 November 2013 в 18:39
  • 4
    если вы сделали автоматическое выражение, принимающее с помощью псевдонима или что-то еще, тогда это было бы здорово. – Ten-Coin 19 November 2013 в 01:13
  • 5
    Не нужно echo: bc <<< "2*2" – Bernhard 21 November 2013 в 01:21

Вы можете использовать calc. Не установлен по умолчанию, но вы можете установить его быстро, используя следующую команду:

sudo apt-get install apcalc

После того, как вы установили, вы можете выполнить любой расчет:

$ calc 5+2
    7
$ calc 5-2
    3
$ calc 5*2          
    10
$ calc 5/2
    2.5
$ calc 5^2
    25
$ calc 'sqrt(2)' 
    1.4142135623730950488
$ calc 'sin(2)'
    0.9092974268256816954
$ calc 'cos(2)'
    -0.416146836547142387
$ calc 'log(2)'
    ~0.30102999566398119521
$ calc 'sqrt(sin(cos(log(2))))^2'
    ~0.81633199125847958126
$ # and so on...
[d3 ] Для получения дополнительной информации просмотрите ее calc

85
ответ дан 24 May 2018 в 15:08
  • 1
    Спасибо за ответ, я вижу, что ответ имеет свое значение. Мне больше нравятся все эти вычисления тригонометрических функций. любое руководство или какая-то информация о том, что еще он может сделать, может помочь вам много ответить. :) – Ten-Coin 19 November 2013 в 01:07
  • 2
    @rajagenupula man calc и calc help все говорит. – Radu Rădeanu 19 November 2013 в 01:39
  • 3
    Мое намерение состоит в том, что если кто-то смотрит на него, он должен быть ясным и amp; быстро. Спасибо. – Ten-Coin 19 November 2013 в 01:44
  • 4
    Фактически вы используете calc help builtin, чтобы просмотреть список поддерживаемых функций, таких как sin() – xiaobai 12 March 2015 в 08:59
  • 5
    Дает больше десятичных знаков, поэтому он лучше подходит для моих целей, чем встроенная арифметика bash. Благодарю. – Mrmfldmn 12 October 2016 в 00:35

К сожалению, нет «более простого» способа сделать это. Интерактивный интерфейс python в командной строке лучше всего подходит для вас, потому что в отличие от apcalc \, python включен в Ubuntu. Я не уверен, что bc включен еще, однако, python является фаворитом для этого материала.

Вы можете просто запустить интерактивный интерфейс python в командной строке, а затем сделать математика таким образом. Вы можете использовать это как свой калькулятор.

Для этого вы открываете терминал, набираете python, затем нажимаете кнопку Enter.

Затем в приглашении python, которая показывает вы можете ввести свою математику. Например, 10000 - 9000. Следующий результат - результат.

Если вы имеете в виду, что-то, где вы просто загружаете терминал и можете это сделать ...

$ 10000 - 9000 1000 $

... тогда нет никакого способа сделать это в включенном терминале без чего-либо еще, потому что Bash не обрабатывает такие числовые аргументы.

30
ответ дан 24 May 2018 в 15:08
  • 1
    Я упомянул, что я не хочу переключаться на python – Ten-Coin 18 November 2013 в 08:43
  • 2
    Обновление @rajagenupula, также включало материал, о котором я упоминал в чате. – Thomas Ward♦ 18 November 2013 в 08:46
  • 3
    bc больше не входит? – Random832 18 November 2013 в 21:47
  • 4
    В стороне, ipython является немного более полезным, чем стандартная оболочка Python, когда дело доходит до выполнения вычислений и т. П. – Naftuli Kay 20 November 2013 в 05:13
  • 5
    bc по умолчанию включен (по крайней мере, в 16.04) – TJ Ellis 7 May 2016 в 19:12

Я бы посоветовал вам создать простую функцию для базовых вычислений Python. Что-то вроде этого в вашем .bashrc:

calc() {
    python3 -c 'import sys; print(eval(" ".join(sys.argv[1:])))' "$@"
}

calc 5 + 5
# Returns 10

result="$(calc 5+5)"
# Stores the result into a variable

Если вы хотите сделать более сложную математику, вы можете использовать следующую команду, которая импортирует все функции модуля math. (см. здесь для получения дополнительной информации)

calc() {
    python3 -c 'from math import *; import sys; print(eval(" ".join(sys.argv[1:])))' "$@"
}

calc 'sqrt(2)'  # Needs quotes because (...) is special in Bash
# Returns 1.4142135623730951

result="$(calc 'sqrt(2)')"
# Stores the result into a variable

(Примечание: поскольку Python является языком программирования, некоторые вещи могут показаться странными, например ** для полномочий и % для модуля) [!d3 ]

В качестве альтернативы вы можете создать скрипт Python calc,

#!/usr/bin/python3
from math import *
import sys
print(eval(' '.join(sys.argv[1:])))

поместить его в каталог, включенный в переменную PATH, и установить его флаг исполняемого файла, чтобы получить ту же calc команду как и выше (нет необходимости создавать функцию Bash для запуска скрипта Python).

Если вы хотите использовать метод в чистом Bash, используйте ответ steeldriver. Этот ответ очень полезен, если вам нужны более продвинутые функции (например, из math), поскольку Python относительно медленный по сравнению с Bash.

Я не уверен, это нарушает ваш «переход на python, он может это сделать, и я не хочу этого таким образом». обратите внимание, но вам не нужно вводить интерактивную подсказку, и результат доступен в Bash, поэтому этот ответ кажется действительным (по крайней мере, для меня).

23
ответ дан 24 May 2018 в 15:08
  • 1
    каждый раз все это означает не столько легко и гибко. Спасибо. любые улучшения вы можете сделать его более простым и amp; Чисто ? Мне бы понравилось это. – Ten-Coin 19 November 2013 в 01:09
  • 2
    @rajagenupula Вы можете поместить это в функцию в свой .bashrc (возможно, с более коротким именем: c, ? или +?), чтобы вы открыли каждый терминал. – kiri 19 November 2013 в 02:08
  • 3
    Остерегайтесь: с Python 3 это отлично работает, но если вы хотите использовать Python 2, вам придется отредактировать фрагмент кода: python2 -c "from __future__ import division; from math import *; print($*)", иначе он всегда будет целочисленным делением, например. для calc 5/2 вы получите 2 вместо 2.5. См. Здесь для справки: stackoverflow.com/a/183870/202504 – jmiserez 22 January 2015 в 15:16
  • 4
    Решение Python может быть лучше, чем apcalc, поскольку вы можете импортировать дополнительные библиотеки и поддерживает литералы pi и e. Я чувствую, что это отдельный сценарий, более гибкий и портативный. Вот простой пример: gist.github.com/jasongeng/279eb396c01e74beb9ef – xiaobai 12 March 2015 в 09:20

Используйте gcalccmd из пакета gnome-calculator (> = 13.04) или gcalctool (& lt; 13.04). Я думаю, что пакет установлен по умолчанию

% gcalccmd
> 2+3
5
> 3/2
1.5
> 3*2
6
> 2-3
−1
> 
21
ответ дан 24 May 2018 в 15:08
  • 1
    Лучший из них до сих пор. Не нужно делать лишнюю вещь, а также установить по умолчанию .. man gcalccmd говорит: калькулятор консоли . Просто, это именно то, что хочет OP .. :) – Saurav Kumar 18 November 2013 в 23:13
  • 2
    Это круто, похоже на bc, python, октавные калькуляторы. Спасибо. – Ten-Coin 19 November 2013 в 01:12
  • 3
    Поскольку gcalccmd довольно сложно печатать, рекомендуется добавить псевдоним к нему в ./bash_aliases, например alias calc='gcalccmd', или если вы хотите сделать одноразовые вычисления (с мгновенным ответом), вы можете добавить alias calc='gnome-calculator -s' - использование последнее: calc 2000/1300 или calc 2+3. В этом случае нет необходимости выходить из калькулятора - он просто дает вам ответ, и вам не нужно вводить quit. – Rafal 10 April 2014 в 15:37

Вот сценарий быстрого сценария для этого:

#!/bin/bash
echo "$@" | bc

Сохраните это как «c», затем поместите его куда-нибудь на свой путь (например, / bin), затем отметьте его исполняемым. [!d1 ]

# nano /bin/c
# chmod +x /bin/c

С этого момента вы можете выполнять вычисления в терминале следующим образом:

$ c 10000-9000
1000
10
ответ дан 24 May 2018 в 15:08
  • 1
    Вы превосходны, добавляя только одну букву, прежде чем вычисление означает, что это действительно крутая идея. это супер, если мне нужно от 2 до 3 расчетов. Я могу пойти на python или какой-нибудь другой дольше, но короче, я выбираю это. Спасибо, что остановились. – Ten-Coin 19 November 2013 в 01:11
  • 2
    Я бы посоветовал вам использовать echo "$@" | bc вместо этого, чтобы вы могли более естественно помещать пробелы в вычисления – kiri 19 November 2013 в 02:57
  • 3
    Как насчет использования = вместо c для имени этой команды? Bash фактически позволяет использовать это как имя функции. – Kaz 19 November 2013 в 03:23
  • 4
    Вы можете поместить программы в ~/bin (ваш домашний каталог bin) и убедитесь, что /home/yourname/bin находится в вашем PATH. – Kaz 19 November 2013 в 03:23
  • 5
    @ minerz029 Хорошее мышление. Я отредактировал свой ответ соответственно. – user530873 19 November 2013 в 06:35

Ниже приведена модификация соответствующей части /etc/bash.bashrc (на Ubuntu 10.04), которая будет модифицировать обработчик command_not_found для запуска анализатора выражения оболочки, если первым символом неизвестной команды является число или - или [ f6].

Вы сможете сделать любую арифметику shell таким образом; см. http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic для списка арифметических операторов.

Обратите внимание, что если выражение, которое вы хотите оценить, содержит [ f7], вам придется процитировать * с помощью \ или кавычек, так как оболочка будет расширять имя файла, прежде чем решать, какую команду запускать.

Поместите это в свой ~/.bashrc, затем введите . ~/.bashrc и попробуйте.

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then
    function command_not_found_handle {
        if [[ $1 == [0-9+-]* ]]; then
           echo $(( $@ ))
        elif [ -x /usr/lib/command-not-found ]; then
           /usr/bin/python /usr/lib/command-not-found -- $1
           return $?
        elif [ -x /usr/share/command-not-found ]; then
           /usr/bin/python /usr/share/command-not-found -- $1
           return $?
        else
           return 127
        fi
    }
fi

Пример вывода: (I набрав cta, опечатку, просто чтобы проверить, что наш новый обработчик command_not_found все равно попытается найти неизвестные команды).

mp@ubuntu:~$ cta
No command 'cta' found, did you mean:
 Command 'cda' from package 'xmcd' (universe)
 Command 'cat' from package 'coreutils' (main)
cta: command not found
mp@ubuntu:~$ 9000-1000
8000
8
ответ дан 24 May 2018 в 15:08
  • 1
    есть ли способ добавить дополнительную поддержку вычислений? – Ten-Coin 19 November 2013 в 01:28
  • 2
    Вы можете взять строку, которая говорит echo $(( $@ )) и изменить ее, вместо этого запустите одну из более продвинутых программ калькулятора, которые упомянули другие ответчики, которые принимают свои аргументы в командной строке. – Mark Plotnick 19 November 2013 в 01:30

Другим решением, о котором я не упоминал здесь, является Qalculate (qalc).

sudo apt-get install qalc

для версии CLI,

sudo apt-get install qalculate-gtk

для GUI. [!d4 ]

У него есть множество функций, таких как:

поддержка единиц: например 20 m / s * 12 h = 864 kilom встроенные константы, такие как pi, e, c, avogadro многие встроенные функции: например. sin(pi) = 0, gamma(4) = 6, 5! = 120, log(1024, 2) = 10, например: > 120 in 120 * inch = 120 in > convert cm 120 in = 304.8 centim поддержка для единиц: например 20 m / s * 12 h = 864 kilom , т.е. integrate 3*x^2 = x^3, diff sin(x), pi встроенные константы, такие как pi, e, c, avogadro вкладка завершения команд много встроенных функций: например. sin(pi) = 0, gamma(4) = 6, 5! = 120, log(1024, 2) = 10 и более ...

Вы говорите, что хотите использовать его без префиксов, ну ... вы можете использовать его с префикс:

$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m

, а также запустить его как repl.

8
ответ дан 24 May 2018 в 15:08
dc! Это часть coreutils, поэтому она установлена ​​на OS X, Ubuntu и в значительной степени ВСЁ еще. Это калькулятор RPN, поэтому, если вам это не нравится, это не для вас.

Очень простые команды следующие (у manpage есть весь синтаксис, который я не включал.

Вам нужны пробелы между числами. Они игнорируются во всех других случаях.

Ввод числа подталкивает его к вершине стека.

+ Adds top 2 items in stack, then pushes result to stack (`2 4 +p` outputs 6)
- Subtracts top 2 items in stack, then pushes result to stack (`4 2 -p` outputs 2)
* Multiplies top 2 items in stack, then pushes result to stack (`6 5 *p` outputs 30)
/ Divides top 2 items in stack, then pushes result to stack (`54 7 /p` outputs 8)
p Print top item in stack, without destroying it
c Clear stack
r Swap top 2 items on stack
d Duplicate top item on stack
k Pops top item off stack, using it to determine precision (so 10 k would print 10 numbers after the decimal point). Default is 0, so it won't do floating point math by default.
n Pops top value off stack, then sends to stdout without a trailing newline
f Dump stack. Useful for finding what something does
7
ответ дан 24 May 2018 в 15:08
  • 1
    Только что заметил, это не отвечает на вопрос (и не дает никаких других ответов). Вопрос заключается в том, как НЕ иметь какие-либо вещи перед уравнением (и не за ним), а просто набирать слово 42 * 5 в терминал и выводить ответ – Yet Another User 19 November 2013 в 02:09
  • 2
    Большинство ответов не применяются. Ввод 1+1 в терминале почти никогда не будет работать. Так что ваш ответ в порядке – kiri 19 November 2013 в 02:10
  • 3
    @YetAnotherUser Я думаю, что единственный способ взломать команду не найден (если она установлена) или сделать что-то грязное в bashrc ... – Braiam 19 November 2013 в 02:13

Я использую Octave для такого рода вещей: http://www.gnu.org/software/octave/

Это в значительной степени клоун matlab (извинения, если это более упрощение), что может можно использовать в терминале, набрав октаву. Установить sudo apt-get install octave

Не совсем то, что вы хотите, но я думал, что добавлю его в качестве альтернативы python.

Пример использования:

5
ответ дан 24 May 2018 в 15:08
  • 1
    Предлагая другой способ достижения цели, это хорошо в ответ, но вы должны предоставить дополнительную информацию о том, как OP будет использовать Octave для удовлетворения заявленных потребностей и почему это хорошая альтернатива. – chaskes 18 November 2013 в 20:58
  • 2
    +1, Octave, matlab, scilab, python все схожи, но октавы мне нужно установить, но предустановленный python. поэтому я отправляюсь на python по умолчанию. Спасибо. – Ten-Coin 19 November 2013 в 01:06
  • 3
    из всего, что я пробовал (и я пробовал много!) октава - единственный, кто возвращает не 0 при синтаксической ошибке! спасибо! – Aquarius Power 16 November 2014 в 02:40

Мне нравится wcalc много. Это научный калькулятор командной строки. Легко найти в Ubuntu Software Center или просто использовать apt-get.

sudo apt-get install wcalc

Он принимает аргументы командной строки, а также имеет режим «shell»:

# simple operation
$ wcalc 2+2
 = 4
# Quoting is necessary to prevent shell from evaluating parenthesis
$ wcalc "(2+2)*10"                                                                                    
 = 40
$ wcalc "sqrt(25)"                                                                                    
~= 5
# in shell mode you can evaluate multiple commands repeatedly
$ wcalc
Enter an expression to evaluate, q to quit, or ? for help:
-> 12*20+1
 = 241
-> sin(90)
 = 1
-> sin(pi/2)
 = 0.0274121

И если кто-то в технике, как и я, вы можете использовать GNU Octave. Он может делать всевозможные вещи, графически, решать одновременное уравнение. Плюс это бесплатная альтернатива Matlab

5
ответ дан 24 May 2018 в 15:08
  • 1
    ... сочетание этого с @ minerz029 довольно аккуратно: поместите это в свои ~ / .bash_aliases: =() { wcalc "$@" } – Frank Nocke 27 February 2017 в 12:22

простой способ - вызвать python.

Пример:

>  python -c 'print 10000-9000'
4
ответ дан 24 May 2018 в 15:08

То, что я нашел, я не могу доверять expr, bc или встроенным параметрам Shell. Поэтому я использовал Perl, который обычно устанавливался в * linux distro

perl -le 'printf "%.0f", eval"@ARGV"' "($VAL2-$VAL1)"

. Вышеуказанный расчет вычитает $ VAL1 из $ VAL2 и печатает без десятичных знаков (0f)

Benefit с использованием Perl (подробности о плюсах и минусах, перечисленных здесь)

Улучшенный захват ошибок (деление на 0 не остановит вычисления) Может предоставлять формулы в файле конфигурации. Не нужно бежать с помощью сложного регулярного выражения
3
ответ дан 24 May 2018 в 15:08
  • 1
    но каждый раз, когда эта команда немного означает проблему. существуют ли в терминале калькуляторы perl? – Ten-Coin 19 November 2013 в 01:04

Вы можете добавить следующую функцию в ваш .bashrc-файл:

function = {
  echo "$@" | bc -l
}

Обратите внимание, что флаг -l очень важен. Без него использование bc дает 5 / 2 = 2.

Как было сказано выше, вычисления могут быть выполнены с использованием знака = перед формулой.

3
ответ дан 24 May 2018 в 15:08

Вы также можете использовать awk для выполнения некоторых арифметических вычислений на терминале,

echo 10000 9000 | awk '{print $1-$2}'
1000
echo 10000 9000 | awk '{print $1+$2}'
19000
echo 10000 9000 | awk '{print $1/$2}'
1.11111
echo 10000 9000 | awk '{print $1*$2}'
90000000
3
ответ дан 24 May 2018 в 15:08
  • 1
    cool, awk (как октава) также возвращает non 0 при синтаксической ошибке thx! – Aquarius Power 16 November 2014 в 02:43

используйте команду «bc», а затем вы можете выполнить вычисление

example

[root@vaibhav ~]# bc

----------these lines will genrate automaicaly---------------

right 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

---------------enter your calculation here---------------------------------------


10+2   

12

Использовать bc без гарантийного примечания записать в терминал bc -q [!d2 ]

пример

[root@vaibhav ~]# bc -q
10+2
12
2
ответ дан 24 May 2018 в 15:08

Вы можете использовать bind и bash C-a и C-e для управления выходом. Например, выполните это в своей оболочке:

bind '"\C-j": "\C-aecho $(( \C-e )) \C-m"'

Теперь введите любую арифметическую операцию, например 10 + 15, и нажмите Ca + J:

$ echo $(( 10 + 15 )) 
25
[d6 ] Вы получите это. Теперь, как это делается?

bind эта команда изменяет привязку вашего bash, например, сочетания клавиш. \C-j это эквивалент bash, эквивалентный Ctrl + J, это ключевая комбинация, которую мы хотели бы добавить к нашей команде. \C-a это приведет нас к началу строки. echo $(( это записывает echo $(( в начале. \C-e возвращает нас к концу строки )), закрывает нашу предыдущую круглую скобку \C-m, это эквивалентно возврату ключа.

Вы можете записать это в свой файл ~/.inputrc:

"\C-j": "\C-aecho $(( \C-e )) \C-m"

Конечно, другие ответы действительно!

bind эта команда изменяет привязку вашего bash, например, сочетания клавиш. apcalc: "\C-j": "\C-acacl \C-m" \C-j это bash эквивалентно Ctrl + J, это ключевая комбинация, которую мы хотели бы добавить к нашей команде. любые другие?

Вы можете изменить Ctrl + J на ​​все, что захотите, но помните, не пытайтесь изменить его для того, что уже имеет привязку;).

Ресурс:

apcalc: "\C-j": "\C-acacl \C-m"
2
ответ дан 24 May 2018 в 15:08
  • 1
    Ctrl + J уже имеет привязку, он отправляет строку (например, Enter). На самом деле это довольно умный ответ;) – kiri 21 November 2013 в 02:25

Раньше я использовал wcalc и небольшую программу под названием e, для которой Google go очень трудно. Теперь я использую скрипт python для этого, который использует некоторые функции e, такие как квадратные скобки. wcalc все еще хорошо, потому что он может делать произвольную точность и преобразование единиц измерения, но я почти никогда не использую эти функции.

#!/usr/bin/env python3

"""
This is a very simple command line calculator.  It reads in all
arguments as a single string and runs eval() on them.  The math module
is imported so you have access to all of that.  If run with no
arguments, it allows you to input a single line expression.  In the
case of command line args, square brackets are replaced with round
parentheses, because many shells interpret round parentheses if they
are not quoted.
"""

import sys, numbers
import cmath, math

args = sys.argv[1:]

if len(args) < 1:
    expr = input()
else:
    expr = " ".join(args[:])
    expr = expr.replace("[", "(").replace("]", ")")

def log2(x):
    """Return the base-2 logarithm of x."""
    return cmath.log(x, 2)

# the smallest number such that 1+eps != 1
# (this is approximate)
epsilon = sys.float_info.epsilon

env = math.__dict__
env.update(cmath.__dict__)
env = {k:v for k,v in env.items() if not k.startswith("__")}
env["eps"] = epsilon
env["log2"] = log2
env["inf"] = float("inf")
env["nan"] = float("nan")

res = eval(expr, env)
# throw away small imaginary parts, they're probably just due to imprecision
if (isinstance(res, numbers.Number)
    and res != 0
    and abs(res.imag)/abs(res) < 10*epsilon):
    res = res.real

print(str(res).replace("(", "[").replace(")", "]"))

Вот как его использовать (при условии, что сценарий был сохранен как и поместите где-то в $PATH):

$ e e**[pi*1i]
-1.0
$ e hex[10**3]
0x3e8
$ e "[0o400+3]&0xff" # need quotes because of '&'
3
2
ответ дан 24 May 2018 в 15:08

Существует одноэтапный способ выполнить именно то, что вы хотите. Все, что вам нужно сделать, это установить shell для вашей учетной записи на /bin/bc.

0
ответ дан 24 May 2018 в 15:08
  • 1
    Не могли бы вы рассказать? Pressume OP не знает, как изменить оболочку. – Braiam 11 December 2013 в 18:14

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

printf `expr $num1 + $num2`   # num1,num2 are  variables which stores numbers as values.

Пример:

$ printf "$(expr 10000 + 9000)\n"
19000
$ printf "$(expr 10000 - 9000)\n"
1000
0
ответ дан 24 May 2018 в 15:08
  • 1
    Таким образом, вы используете expr (который не встроен) для вычисления результата, printf здесь избыточен – Javier López 3 November 2015 в 06:05

Вы можете использовать интерпретатор python для расчета. Вот как это сделать.

Python 2 и python 3 по умолчанию установлены в Ubuntu.

$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 2+2
4
>>> 3*5
15
0
ответ дан 24 May 2018 в 15:08

Создать калькулятор терминалов

Поместите следующее в ваш .bashrc файл

function calc
{
 echo "${1}"|bc -l;
}

Или запустите его в командной строке. Теперь «calc» из оболочки будет работать следующим образом:

$ calc 3+45
   48

Все функции с «(» или «)» должны быть заключены в кавычки.

0
ответ дан 24 May 2018 в 15:08

Другие вопросы по тегам:

Похожие вопросы: