bc命令小記

2021-10-08 15:21:44 字數 2857 閱讀 2417

bc命令是一種支援任意精度的互動執行的計算器語言。

(1)使用方式

• 互動式

[root@cp ~]

# bc

bc 1.06.95

this is free software with absolutely no warranty.

for details type `warranty'.

1+12

• bc + filename

[root@cp ~]

# cat 1.txt

1+12*3

[root@cp ~]

# bc "1.txt"

bc 1.06.95

this is free software with absolutely no warranty.

for details type `warranty'.

26

• echo + 管道 + bc

[root@cp ~]

# echo "1+1" | bc

2

• bc + 重定向

[root@cp ~]

# bc < "1.txt"26

[root@cp ~]

# bc <<< "1+1"

2

(2)基本運算
[root@cp ~]

# bc <<< "5+4"

9[root@cp ~]

# bc <<< "-1+-1"

-2[root@cp ~]

# bc <<< "1.5+1.7"

3.2

[root@cp ~]

# bc <<< "5-4"

1

[root@cp ~]

# bc <<< "5*4"

20

/ 除法

[root@cp ~]

# bc <<< "2/4" //為什麼 「2/4」 等於0呢,因為bc的內建函式scale預設指定了顯示小數點後0位數

0[root@cp ~]

# bc <<< "scale=2;2/4" //我們自定義一下顯示小數點後2位,結果小於1的浮點數,0會自動省略。

.50[root@cp ~]

# bc <<< "scale=2;5/4"

1.25

^ 指數

[root@cp ~]

# bc <<< "2^4"

16

% 取餘

[root@cp ~]

# bc <<< "4%2"

0[root@cp ~]

# bc <<< "4%3"

1

(3)特殊變數和內建函式

• 特殊變數

變數名作用

scale

定義小數點後的位數

ibase

指定輸入的進製數

obase

指定輸出的進製數

last 或者 .

儲存著最後乙個列印數字的值

例項演示:

[root@cp ~]

# bc <<< "scale=1;2/1"

2.0[root@cp ~]

# bc <<< "scale=2;2/1"

2.00

[root@cp ~]

# bc <<< "scale=2;1/2"

.50[root@cp ~]

# bc <<< "ibse=10;obase=2;10" //十進位制轉二進位制

1010

[root@cp ~]

# bc <<< "obase=2;10" //預設輸入進製為十進位制轉

1010

[root@cp ~]

# bc <<< "obase=2;3"

11[root@cp ~]

# bc <<< "scale=1;2/1;last"

2.02.0

[root@cp ~]

# bc <<< "scale=1;2/1;."

2.02.0

[root@cp ~]

# cat 1.txt

1+12*3

last //使用.也是一樣效果

[root@cp ~]

# bc < 1.txt26

6

• 內建函式

名稱作用

length()

獲取有效數字位數

scale()

獲取小數點後數字位數

sqrt()

平方根計算

read()

從標準輸入中讀取數字

例項演示:

[root@cp ~]

# bc <<< "length(100)"

3[root@cp ~]

# bc <<< "length(1.15)"

3[root@cp ~]

# bc <<< "scale(1.15)"

2[root@cp ~]

# bc <<< "sqrt(100)"

10[root@cp ~]

# bc <<< "sqrt(7)"

2[root@cp ~]

# bc <<< "scale=5;sqrt(7)"

2.64575

linux shell命令之運算bc

bc q q選項使得bc運算器不輸出版本資訊 13 3 4 未設定scale之前,除法運算結果自動取整 1scale 4 將scale改為4 13 3 4 1.8571 除法結果小數點後保留4位小數 quit 在指令碼中使用bc運算器的例子 variable echo options express...

MYSQL命令小記

本人不才,記錄一下sql命令。使用mysql。1 顯示資料庫 show databases 要加s 2 建立資料庫 create database one 資料庫名字為one 下面都是用one來代表 可通過show databases檢視 3 刪除資料庫 drop database one 4 進入...

linux命令小記

剛換了個工作不久,由於公司 是部署在遠端linux伺服器上的,幸 dan 運 teng 的是在以前的公司只用過window server伺服器啊,對於linux系統命令一點都不曉得啊!如今想想以前過的真輕鬆加愉快啊 不過每次看別人寫命令簡直就是掉渣天的行為啊.作為乙個程式猿。好吧,廢話太多了。更悲劇...