共計(jì) 1727 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 linux 中如何使用 bc 工具,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
bc 工具可以為你提供的功能可以滿足你對(duì)科學(xué)計(jì)算器、金融計(jì)算器或者是簡(jiǎn)單計(jì)算器的期望。另外,假如需要的話,它還可以從命令行中被腳本化。這使得當(dāng)你需要做復(fù)雜的數(shù)學(xué)運(yùn)算時(shí),你可以在 shell 腳本中使用它。
因?yàn)?bc 也被用于其他的系統(tǒng)軟件,例如 CUPS 打印服務(wù),所以它可能已經(jīng)在你的 Fedora 系統(tǒng)中被安裝了。你可以使用下面這個(gè)命令來(lái)進(jìn)行檢查:
dnf list installed bc
假如因?yàn)槟承┰蚰銢](méi)有在上面命令的輸出中看到它,你可以使用下面的這個(gè)命令來(lái)安裝它:
sudo dnf install bc
用 bc 做一些簡(jiǎn)單的數(shù)學(xué)運(yùn)算
使用 bc 的一種方式是進(jìn)入它自己的 shell。在那里你可以按行進(jìn)行許多次計(jì)算。當(dāng)你鍵入 bc 后,首先出現(xiàn)的是有關(guān)這個(gè)程序的警告:
$ bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2
000, 2
004, 2
006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty .
現(xiàn)在你可以按照每行一個(gè)輸入運(yùn)算式或者命令了:
1+1
bc 會(huì)回答上面計(jì)算式的答案是:
2
在這里你還可以執(zhí)行其他的命令。你可以使用 加 (+)、減 (-)、乘 (*)、除 (/)、圓括號(hào)、指數(shù)符號(hào) (^) 等等。請(qǐng)注意 bc 同樣也遵循所有約定俗成的運(yùn)算規(guī)則,例如運(yùn)算的先后順序。你可以試試下面的例子:
(4+7)*2
4+7*2
若要退出 bc 可以通過(guò)按鍵組合 Ctrl+D 來(lái)發(fā)送“輸入結(jié)束”信號(hào)給 bc。
使用 bc 的另一種方式是使用 echo 命令來(lái)傳遞運(yùn)算式或命令。下面這個(gè)示例就是計(jì)算器中的“Hello, world”例子,使用 shell 的管道函數(shù) (|) 來(lái)將 echo 的輸出傳入 bc 中:
echo 1+1
| bc
使用 shell 的管道,你可以發(fā)送不止一個(gè)運(yùn)算操作,你需要使用分號(hào)來(lái)分隔不同的運(yùn)算。結(jié)果將在不同的行中返回。
echo1+1
;2
+2
| bc
精度
在某些計(jì)算中,bc 會(huì)使用精度的概念,即小數(shù)點(diǎn)后面的數(shù)字位數(shù)。默認(rèn)的精度是 0。除法操作總是使用精度的設(shè)定。所以,如果你沒(méi)有設(shè)置精度,有可能會(huì)帶來(lái)意想不到的答案:
echo 3/2
| bc echo scale=3; 3/2
| bc
乘法使用一個(gè)更復(fù)雜的精度選擇機(jī)制:
echo 3*2
| bc echo 3*2
.0 | bc
同時(shí),加法和減法的相關(guān)運(yùn)算則與之相似:
echo 7-4.15 | bc
其他進(jìn)制系統(tǒng)
bc 的另一個(gè)有用的功能是可以使用除了十進(jìn)制以外的其他計(jì)數(shù)系統(tǒng)。例如,你可以輕松地做十六進(jìn)制或二進(jìn)制的數(shù)學(xué)運(yùn)算。可以使用 ibase 和 obase 命令來(lái)分別設(shè)定輸入和輸出的進(jìn)制系統(tǒng)。需要記住的是一旦你使用了 ibase,之后你輸入的任何數(shù)字都將被認(rèn)為是在新定義的進(jìn)制系統(tǒng)中。
要做十六進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換或運(yùn)算,你可以使用類(lèi)似下面的命令。請(qǐng)注意大于 9 的十六進(jìn)制數(shù)必須是大寫(xiě)的 (A-F):
echo ibase=16; A42
F | bc echo ibase=16; 5F72
+C39B | bc
若要使得結(jié)果是十六進(jìn)制數(shù),則需要設(shè)定 obase:
echo obase=16; ibase=16; 5F72
+C39B | bc
下面是一個(gè)小技巧。假如你在 shell 中做這些十六進(jìn)制運(yùn)算,怎樣才能使得輸入重新為十進(jìn)制數(shù)呢? 答案是使用 ibase 命令,但你必須設(shè)定它為在當(dāng)前進(jìn)制中與十進(jìn)制中的 10 等價(jià)的值。例如,假如 ibase 被設(shè)定為十六進(jìn)制,你需要輸入:
ibase=A
一旦你執(zhí)行了上面的命令,所有輸入的數(shù)字都將是十進(jìn)制的了,接著你便可以輸入 obase=10 來(lái)重置輸出的進(jìn)制系統(tǒng)。
以上是“l(fā)inux 中如何使用 bc 工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!