shell學習十一 bc

2021-08-07 14:28:15 字數 2144 閱讀 5958

bc(獨有特點既包含整數,也包含小數)

bc是一種任意精度的計算語言,注意是一種語言,它提供了一些語法結構,

比如條件判斷、迴圈等,可以說是很強大的,但是我在實際中還沒有找到

需要這個用途的場合 。另外乙個用途就是用來進行進製轉換。

引數-i 強制互動模式;

-l 使用bc的內建庫,bc裡有一些數學庫,對三角計算等非常實用;

-q 進入bc互動模式時不再輸出版本等多餘的資訊。

特殊變數

ibase,obase 用於進製轉換,ibase是輸入的進製,obase是輸出的進製,預設是十進位制;

scale 小數保留位數,預設保留0位。

例子1:

[root@node01 day4]# bc

bc 1.06.95

this is free software with absolutely no warranty.

for details type `warranty'.

2+35

3*39

5/22

5%21

5**5

例子2:

[root@node01 day4]# echo 1+2|bc

3[root@node01 day4]# echo 1+3|bc

4[root@node01 day4]# echo 1+5|bc

6[root@node01 day4]# echo 1+5.1|bc   (小數計算是bc特有的)

6.1[root@node01 day4]# echo 1.1+5.1|bc

6.2[root@node01 day4]# expr 1.1 + 2

expr: non-numeric argument

[root@node01 day4]# echo $((1.1+2))

-bash: 1.1+2: syntax error: invalid arithmetic operator (error token is ".1+2")

[root@node01 day4]# let 1+2

[root@node01 day4]# let 1.1+2

-bash: let: 1.1+2: syntax error: invalid arithmetic operator (error token is ".1+2")

[root@node01 day4]# echo 1.1-5.1|bc

-4.0

scale(保留小數字數)

[root@node01 day4]# echo "scale=1;1.1*2.2|bc"

scale=1;1.1*2.2|bc

[root@node01 day4]# echo "scale=1;1.1*2.2"|bc

2.4[root@node01 day4]# echo "1.1*2.2"|bc        

2.4[root@node01 day4]# echo "1.1*2.2"|bc -l

2.42

[root@node01 day4]# echo "scale=1;1.3/2.2"|bc

.5[root@node01 day4]# echo "scale=3;1.3/2.2"|bc

.590

進製轉換

[root@node01 day4]# echo "obase=2;8"|bc   十進位制8轉換為2進製

1000

[root@node01 day4]# echo "obase=16;20"|bc 十進位制8轉換為16進製制

14例子3:

輸出表示式和結果

[root@node01 day4]# echo ` seq -s '+' 10 `=` seq -s "+" 10|bc`

1+2+3+4+5+6+7+8+9+10=55

[root@node01 day4]# echo ` seq -s '+' 10 `=$((`seq -s "+" 10`))

1+2+3+4+5+6+7+8+9+10=55

[root@node01 day4]# echo ` seq -s '+' 10 `=`seq -s " + " 10|xargs expr`

1+2+3+4+5+6+7+8+9+10=55

其他運算方法

typeset

$

shell中使用bc計算

bc是linux自帶的一款任意精度計算器,個人覺得挺好用比let exec好用 稍微舉幾個栗子 echo scale 2 100.00 10.55 bc echo scale 2 100.00 10.55 bc scale表示精度,這裡scale 2表示小數點後面保留兩位,一般的加減乘除。這個小數點...

shell中用bc進行浮點運算

bash 不能處理浮點運算,並且缺乏特定的一些操作,這些操作都是一些重要的計算功能.幸運的是,bc 可以解決這個問題.bc不僅僅是個多功能靈活的精確的工具,而且它還提供許多程式語言才具備的一些方便的功能.因為它是乙個完整的 unix 工具,所以它可以用在管道 中,bc在指令碼中也是很常用的.這裡有乙...

shell命令實現 bc計算器

我們將程式分為兩個部分 1.主程式bcmain.c include headall.h 實現bc程式 其主要功能是用來進行加減乘除的運算 其本質是乙個客戶端 伺服器的模型 pipe dc stdin 0 bc dc stdout1 pipe dc 使用者首先會連線到bc並將bc連線到dc,呼叫dc程...