[20191010]bash行計算器.txt--//寫一個bash行計算器,為了避免衝突,函數命名為2個=,1個=感覺不是很好(心裡上^_^)。--//使用bc計算器,裡面函數不能使用圓括弧,使用中括弧代替。== (){ local in="$(echo "$@" | sed -e 's/\[/(/ ...
[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位.