[20191010]bash行计算器.txt
--//写一个bash行计算器,为了避免冲突,函数命名为2个=,1个=感觉不是很好(心里上^_^)。
--//使用bc计算器,里面函数不能使用圆括号,使用中括号代替。
== ()
{
local in="$(echo "$@" | sed -e 's/\[/(/g' -e 's/\]/)/g')";
echo $in | bc -lq | tr -d '\n\\\r' | sed -e "s/\.\([0-9]*[1-9]\)0\+$/.\1/" -e "s/\.0\+$//"
}
--//写入.bashrc脚本里面就ok了.
--//一些测试:
$ == "scale=4;4/3"
1.3333
--//有分号要加引号才行.
$ == 12*5+11.234
71.234
$ == l[100]/l[10]+1.234
3.234
--//函数使用中括号代替源括号.
$ == s[3.14159]
.00000265358979323534
$ == 2^240
1766847064778384329583297500742918515827483896875618958121606201292619776
--//在bc下执行出现折行情况.
$ echo 2^240 | bc -lq
17668470647783843295832975007429185158274838968756189581216062012926\
19776
$ == "scale=100;a(1)*4"
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170676
--//PI小数点100位.