[20191010]bash行計算器.txt

lfree發表於2019-10-11

[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位.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2659611/,如需轉載,請註明出處,否則將追究法律責任。

相關文章