1. bash里面能够实现比较简单的四则运算
echo $((*))
注意是 双括号+ $ 地址符号.
2. 但是比较复杂的 可能就难以为继了 比如不支持精度
3. 所以这里面需要使用 bc 命令来执行相关的操作.
man 内容:
usage: bc [options] [file ...]
-h --help print this usage and exit
-i --interactive force interactive mode
-l --mathlib use the predefined math routines
-q --quiet don't print initial banner
-s --standard non-standard bc constructs are errors
-w --warn warn about non-standard bc constructs
-v --version print version information and exit
4. 实现简单的 测试:
使用 bc -l 进入 计算界面:
比如我输入的 sqrt(100) 就是计算100 的平方根了
但是我没找到怎么去立方根
还可以计算 自然对数
比如:
l() 表示 以 e为底 的对数
e() 表示 e 的10次方...
5. 但是这样计算可能不太方便 也可以使用 管道命令执行相应的操作:
求直接三角形的 第三条边的长度.
echo "ibase=10,obase=2,254" |bc -l -q
6. 或者是可以实现 进制的转换:
echo "ibase=10;obase=2;254" |bc -l -q
7. 总结语法注意点:
每个参数 使用 分号 分隔 可以使用 管道 也可以不使用管道.
8. 数学函数
MATH LIBRARY
If bc is invoked with the -l option, a math library is preloaded and the default scale is set to . The math functions will calculate their results to the scale set at the time of their call. The math library defines the following functions: 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.
so 可以显示圆周率的 公式是
echo "scale=10;a(1)*4" |bc -l -q
显示自然对数的公式
echo "scale=10;e(1)" |bc -l -q