-
1 # 聊科技愛生活
-
2 # 小小猿愛嘻嘻
目前Linux針對bash shell數學計算,提供了5種方式(命令)來實現,分別是let、圓括號、方括號、expr和bc,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:
let命令這是bash內建的一個算數運算命令,最簡單也最常用,可以實現日常大部分的數學計算,包括加、減、乘、除、取餘、自增、自減等,當然,高階的位移運算、邏輯運算、條件運算等,這個命令也可以輕鬆實現,需要注意的是,這裡的運算元只能是整數,否則命令會報錯:
圓括號這也是bash shell一種比較常用的數學計算方式,需要用2個圓括號將數學表示式括起來,然後進行相關計算,得到最終結果,基本功能和let命令差不多,可以實現日常大部分的數學計算,包括加減乘除四則運算、自增、自減等,運算元也只能是整數:
方括號這種方式和圓括號差不多,需要用1個方括號將數學表示式括起來,然後進行運算,得出最終結果,目前也支援自減自增、加減乘除等常見數學計算,需要注意的是,這裡的運算元也只能是整數,否則運算會出錯:
expr命令這是Linux一個比較高階的數學運算命令,也比較常用,支援加減乘除等常見數學運算,除此之外,還支援邏輯運算、關係運算等高階功能,與前面3種方式一樣,expr命令目前也只限整數,而且運算子兩邊必須要有空格,否則會報語法錯誤:
bc命令這也是一個比較高階的數學運算命令,類似一個計算器,與前面4種方式(命令)不同,bc命令既支援整數運算,也支援浮點數運算,可以人為設定精度,而且支援函式呼叫,如果你需要實現複雜計算功能的話,可以考慮使用一下這個命令,非常實用也非常簡單:
至此,我們就介紹完了在Linux bash shell環境下進行數學計算。總的來說,這5種方式(命令)都非常簡單,只要你有一定的Linux基礎,熟悉一下相關文件和示例,很快就能掌握的。對於簡單的整數運算,前4種方式就可以輕鬆實現,如果是複雜的浮點數運算,可以使用bc命令,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
-
3 # 產品經理老胡
老胡的看法:
Linux的bash shell下面有很多支援整數和浮點運算的工具,比如常見的echo(只支援整數)、printf、awk、bc、dc、以及一些Linux下我們常用的程式語言框架如node、perl、python等都可以用來做一些簡單的數學運算。這裡我重點介紹幾個:
使用printf進行數學計算利用printf的格式化輸出特性,可以計算echo無法輸出的浮點數。printf可以支援四則運算、乘方、科學計數法等計算。不過無法支援三角函式和對數計算。對於一般的情形來說其實已經夠用:
%f表示以浮點數格式輸出,.後面的數字表示保留的小數位數。列印的字串裡**表示乘方,e表示科學計數法。
使用bc進行數學計算bc是BestCalculator的首字母縮寫,它是一個支援互動式計算的命令列計算器,同時也支援內聯模式的呼叫。透過scale可以設定輸出的小數精度,透過obase設定輸出的進位制,ibase設定輸入的進位制,以此來實現更加強大的功能:
使用awk進行數學計算不得不說awk簡直就是字串處理的神器,除了一般的字串處理之外,awk也提供了強大的計算功能。awk的計算函式中還支援了sin、cos等三角函式、sqrt開方和對數函式等運算函式。通常為了使用方便,我們在bash中可以先定義一個計算器函式過程:
cal(){ awk "BEGIN { print $*}"; }之後再使用cal+算術式就可以進行運算了:
使用dc進行數學計算dc是一個使用逆波蘭表示法輸入算術式的計算器,同時支援命令列計算和互動式計算,和bc差不多,但是它使用的逆波蘭表示法很有意思,也需要一些時間來適應。逆波蘭表示法的核心是使用棧式運算,運算元入棧,遇到運算子時最上面的兩個運算元進行計算,結果入棧。
比如:
5 + ((1 + 2) * 4) - 3寫成逆波蘭表示式就是:
5 1 2 + 4 * + 3 -在bash shell中使用其它指令碼語言計算比如node、python、perl、php甚至sqlite都可以利用起來用作整數和浮點運算,以node為例,直接使用js裡面的數學表示式就可以:
總結一下,老胡介紹的這幾樣工具是不是很好玩?想知道更加詳細的玩法,多使用man命令檢視文件。在老胡介紹這幾樣神器之前是不是以為bash shell只能進行有限的整數運算?老胡非常強烈的建議好好學一下awk這個神器,我感覺它已經快上天入地無所不能了。另外除了bash shell之外,還可以多瞭解一下zsh shell,它原生的echo就可以進行浮點運算,其它的功能也非常強大,最新版的macOS選用了它作為預設的shell程式。
回覆列表
1. linux 一般帶有命令列計算器:bc.
進入計算器命令: bc -l
然後可以使用常用的計算表示式,比如 10 + 100, 10 / 3 等等
2. 直接執行 Python,可以使用 Python 的控制檯計算啊,也很方便。