Могу ли я сделать базовую математику в Bash?

Ответы:

21

Просто введите bcв терминал. Затем введите все математические вещи после этого.

bcозначает « б Основныеоперации гр alculator»

Затем введите quitи введите для выхода.

DCIndieDev
источник
2
Просто для наглядности было бы так: эхо 25-5 | до н.э.
Медхэт Хелми
Для некоторых математических задач вам может понадобиться заключить их в кавычки, например,echo '0.6 * 12' | bc
Goose
Вам также может понадобиться добавить масштаб, чтобы получить точность с плавающей запятой, т.е.echo "scale=2;557/3672" | bc
CpILL
60

Если мы действительно говорим о Bash, а не о Bourne Shell (sh) или других оболочках, это легко.

Bash может вычислить базовые выражения с помощью $ ((expression)), и вот пример того, как вы можете его использовать:

 а = 3
 б = 4
 с = $ ((7 * а + б))
 эхо $ с

или для интерактивного использования, просто

 echo $ ((7 * 3 + 4))
Seikku Kaita
источник
Похоже, это правильный bash, так как это работает. Я вхожу в один из моих университетских кластеров
Курру
4
$((expression))Синтаксис является частью POSIX shстандарта, и производные от ksh.
geekosaur
6
Баш может делать только целочисленную арифметику. Он не может выполнять арифметику с плавающей запятой, как ksh93 или zsh
fpmurphy
3
Это должен был быть принятый ответ.
Андреас Хартманн
10

Есть несколько утилит командной строки для выполнения простых вычислений:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

назвать только два из них. Будьте осторожны при умножении, так как если вы не избежите *, оболочка может попытаться интерпретировать его как подстановочный знак.

Majenko
источник
9

Другой это AWK:

awk 'BEGIN {print 4 + 3 / 12}'
Приостановлено до дальнейшего уведомления.
источник
7

Ну, на ваш вопрос ответили, но учтите это:

В большинстве дистрибутивов Linux предустановлен Python, так почему бы не использовать его?

Просто введите

python

в терминале, а затем делайте всю арифметику, какую хотите, например,

2+2

Будет выходной 4 :)

Вы также можете сделать это прямо из терминала с -cаргументом python.

python -c 'print 2+2'
Маркус Максвелл
источник
На моем компьютере ввод текста pythonзанимает почти две секунды. Скорее раздражает, если вы просто хотите сделать что-то простое, как 2 + 2.
ShreevatsaR
используйте python3, если вы не хотите округлять число с плавающей точкой. например , 2 / 30(питон: 0) (python3: 0.06666666666666667)
hrvoj3e
и если у вас установлен только python3, но вы хотите округлить, используйте 2//30илиint(2/30)
mazunki
3

Или Рубин. :)

Хотя он может и не быть предустановленным, он довольно быстрый.

Типа irbтогда 2+2.

Или просто ruby -e 'p 2+2'

whirlwin
источник
0

Perl это еще один вариант:

perl -E 'say 1/7'

выходы

0.142857142857143
Приостановлено до дальнейшего уведомления.
источник