Как использовать GNU bc (базовый калькулятор) в Linux

by itisgood

bc (Basic Calculator) – это утилита командной строки, которая предлагает все, что вы ожидаете от простого научного или финансового калькулятора.

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

Его можно использовать обычно как математический язык сценариев или как интерактивную математическую оболочку, как описано в этой статье.

Если у вас нет bc в вашей системе, вы можете установить его с помощью диспетчера пакетов для вашего дистрибутива, как показано ниже:

$ sudo apt install bc	#Debian/Ubuntu
$ sudo yum install bc	#RHEL/CentOS
$ sudo dnf install bc	#Fedora 22+

Чтобы открыть bc в интерактивном режиме, введите команду bc и просто начните вычислять свои выражения.

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
10 + 5
15
1000 / 5
200
(2 + 4) * 2
12

Следует отметить, что, хотя bc может работать с произвольной точностью, на самом деле он по умолчанию принимает нулевые цифры после десятичной точки, например, выражение 3/5 приводит к 0, как показано на следующем выводе.

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
3 / 5
0

Вы можете использовать флаг -l для установки масштаба по умолчанию (цифры после десятичной точки) до 20 и также определяет стандартную математическую библиотеку.

Теперь запустите предыдущее выражение еще раз.

$ bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
3 / 5
.60000000000000000000
5 / 7
.71428571428571428571

В качестве альтернативы вы можете указать масштаб после открытия bc, как показано.

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
scale=0; 8%5
3
scale=1; 8%5
0
scale=20; 8%5
0
scale=20; 8%11
.00000000000000000008

Вы также можете использовать следующую команду для общих оболочек, например, в bash, ksh, csh, для передачи аргументов на bc, как показано ниже:

$ bc -l <<< "2*6/5"
2.40000000000000000000

Как использовать bc неинтекративно:

$ echo '4/2' | bc
$ echo 'scale=3; 5/4' | bc
$ ans=$(echo "scale=3; 4 * 5/2;" | bc)
$ echo $ans

Чтобы точно обрабатывать язык POSIX bc, используйте флаг -s и включите предупреждения для расширений для POSIX bc, используйте параметр -w, как показано ниже:

$ bc -s
$ bc -w

 

You may also like

Leave a Comment