# Ubuntu – Any command line calculator for Ubuntu

calculatorcommand linesoftware-recommendation

I am looking for a Calculator which can do calculations in the terminal itself without any other extra prefixes and suffixes.

For example: If I typed something like 10000-9000 in the terminal, the answer should come out as 1000.

Once again I am saying, I just need a quick calculator in terminal, without any characters added. I know if I switch to Python, it can do that but I don't want it in such a way.

• ## Bash Arithmetic

Another possible solution is to add a simple function for Bash's builtin arithmetic. Put this in your .bashrc file to try:

=() {
echo "$(($@))"
}


272 (0x110)

$= 16**3 + 16**4 69632 (0x11000)  ## Using bc If you want slightly more advanced calculations, you can pipe it to bc like so: =() { local IFS=' ' local calc="${*//p/+}"
calc="${calc//x/*}" bc -l <<<"scale=10;$calc"
}

= 'sqrt(2)' # Returns 1.4142135623
= '4*a(1)'  # Returns pi (3.1415926532)


The functions provided by bc are as follows (and can be found from man bc):

sqrt ( expression )
The value of the sqrt function is the square root of the expression.
If the expression is negative, a run time error is generated.

s (x)  The sine of x, x is in radians.

c (x)  The cosine of x, x is in radians.

a (x)  The arctangent of x, arctangent returns radians.

l (x)  The natural logarithm of x.

e (x)  The exponential function of raising e to the value x.

j (n,x)
The Bessel function of integer order n of x.


It also supports if, for, while and variables like a programming language though if it may be better to write to a file if you wanted that.

Keep in mind that it will substitute p and x in function/variable names. It may be better to just remove the replacements.

## Using gcalccmd

You can also make the function call gcalccmd (from gnome-calculator) like so:

=() {
local IFS=' '
local calc="$*" # Uncomment the below for (p → +) and (x → *) #calc="${calc//p/+}"
#calc="${calc//x/*}" printf '%s\n quit' "$calc" | gcalccmd | sed 's:^> ::g'
}

= 'sqrt(2)' # Returns 1.4142135623
= '4^4'     # Returns 256


The available functions seem to be (taken straight from the source code), == denotes equivalent functions:

ln()
sqrt()
abs()
int()
frac()
sin()
cos()
tan()
sin⁻¹() == asin()
cos⁻¹() == acos()
tan⁻¹() == atan()
sinh()
cosh()
tanh()
sinh⁻¹() == asinh()
cosh⁻¹() == acosh()
tanh⁻¹() == atanh()
ones()
twos()