If you need a calculator in a graphical desktop environment, you may only need to click on it all the way to find a calculator. For example, a tool named is already included in the Fedora workstation Calculator
. It has several different modes of operation, for example, you can perform complex mathematical operations or financial operations. But, you know, the command line also provides a similar named bc
tool?
bc
Tools can give you the ability to meet your expectations for scientific calculators, financial calculators, or simple calculators. Alternatively, it can be scripted from the command line, if needed. This allows you to use it in a shell script when you need to do a complex math operation.
Because BC is also used for other system software, such as the CUPS Print Service, it may already be installed in your Fedora system. You can use the following command to check:
DNF List installed BC
If for some reason you do not see it in the output of the above command, you can use this command to install it:
sudo Install BC
Use BC to do some simple math operations
One way to use BC is to enter its own shell. There you can do many calculations by line. When you type BC, the first thing that comes up is a warning about the program:
1.06. the 1991-1994199719982004 2006 free software with absolutely NO WARRANTY. For details type ' warranty'.
Now you can follow an input expression or command for each line:
1+1
BC will answer the above formula:
2
You can also perform other commands here. You can use Add (+), subtract (-), multiply (*), divide (/), parentheses, exponent (^), and so on. Please note that BC also follows all the established rules of operation, such as the sequencing of operations. You can try the following example:
(4+7) *24+7*2
To exit BC You can send an Ctrl+D
"input end" signal to BC by pressing the key combination.
Another way to use BC is to use echo
commands to pass an expression or command. The following example is the "Hello, World" example in the calculator, using the Shell's pipe function (|) to echo
pass the output bc
in:
Echo ' up ' | Bc
Using the Shell's pipeline, you can send more than one operation, you need to use semicolons to separate the different operations. The result is returned in a different row.
Echo ' A . ' | Bc
Precision
In some calculations, BC uses the concept of precision, which is the number of digits after the decimal point. The default precision is 0. The division operation always uses the precision setting. Therefore, if you do not set the accuracy, it may bring unexpected answers:
Echo ' 3/2 ' | BC Echo ' scale=3; 3/2 ' | Bc
Multiplication uses a more complex precision-selection mechanism:
Echo ' 3*2 ' | BC Echo ' 3*2.0 ' | Bc
At the same time, the related operations of addition and subtraction are similar:
Echo ' 7-4.15 ' | Bc
Other input systems
Another useful feature of BC is that it is possible to use a counting system other than decimal. For example, you can easily do a hexadecimal or binary mathematical operation. You can ibase
use obase
the and commands to set the input and output of the binary system separately. It is necessary to remember that once you have used it ibase
, any number you enter will be considered to be in the newly defined binary system.
To do a hexadecimal number to decimal number conversion or operation, you can use a command similar to the following. Note that the hexadecimal number greater than 9 must be uppercase (A-F):
Echo ' ibase=16; a42f' | BC Echo ' ibase=16; 5f72+c39b ' | Bc
To make the result a hexadecimal number, you need to set obase
:
Echo ' obase=16, ibase=16, 5f72+c39b ' | Bc
Here's a little trick. If you do these hexadecimal operations in the shell, how can you make the input a decimal number? The answer is to use a ibase
command, but you must set it to a value equivalent to 10 in the decimal in the current binary. For example, if it ibase
is set to 16, you need to enter:
Ibase=a
Once you have executed the above command, all the input numbers will be in decimal, and then you can enter obase=10
to reset the output of the binary system.
Conclusion
The above mentioned is only the basis that BC can do. It also allows you to define functions, variables, and loop structures for some complex operations and programs. You can save these programs as text files in your system so that you use them when you need them. You can also find more resources on the web, which provide more examples and additional library of functions. Calculate it with pleasure!
A command-line calculator in linux introduction to BC