如何在Linux下使用bash shell進行數學計算?

一般情況下數學公式都識別成了字符串,如果想做數學計算怎麼辦
4 個回答
小小猿爱嘻嘻
2019-08-02

目前Linux針對bash shell數學計算,提供了5種方式(命令)來實現,分別是let、圓括號、方括號、expr和bc,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:

let命令

這是bash內置的一個算數運算命令,最簡單也最常用,可以實現日常大部分的數學計算,包括加、減、乘、除、取餘、自增、自減等,當然,高級的位移運算、邏輯運算、條件運算等,這個命令也可以輕鬆實現,需要注意的是,這裡的操作數只能是整數,否則命令會報錯:

目前Linux針對bash shell數學計算,提供了5種方式(命令)來實現,分別是let、圓括號、方括號、expr和bc,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:

let命令

這是bash內置的一個算數運算命令,最簡單也最常用,可以實現日常大部分的數學計算,包括加、減、乘、除、取餘、自增、自減等,當然,高級的位移運算、邏輯運算、條件運算等,這個命令也可以輕鬆實現,需要注意的是,這裡的操作數只能是整數,否則命令會報錯:

圓括號

這也是bash shell一種比較常用的數學計算方式,需要用2個圓括號將數學表達式括起來,然後進行相關計算,得到最終結果,基本功能和let命令差不多,可以實現日常大部分的數學計算,包括加減乘除四則運算、自增、自減等,操作數也只能是整數:

目前Linux針對bash shell數學計算,提供了5種方式(命令)來實現,分別是let、圓括號、方括號、expr和bc,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:

let命令

這是bash內置的一個算數運算命令,最簡單也最常用,可以實現日常大部分的數學計算,包括加、減、乘、除、取餘、自增、自減等,當然,高級的位移運算、邏輯運算、條件運算等,這個命令也可以輕鬆實現,需要注意的是,這裡的操作數只能是整數,否則命令會報錯:

圓括號

這也是bash shell一種比較常用的數學計算方式,需要用2個圓括號將數學表達式括起來,然後進行相關計算,得到最終結果,基本功能和let命令差不多,可以實現日常大部分的數學計算,包括加減乘除四則運算、自增、自減等,操作數也只能是整數:

方括號

這種方式和圓括號差不多,需要用1個方括號將數學表達式括起來,然後進行運算,得出最終結果,目前也支持自減自增、加減乘除等常見數學計算,需要注意的是,這裡的操作數也只能是整數,否則運算會出錯:

目前Linux針對bash shell數學計算,提供了5種方式(命令)來實現,分別是let、圓括號、方括號、expr和bc,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:

let命令

這是bash內置的一個算數運算命令,最簡單也最常用,可以實現日常大部分的數學計算,包括加、減、乘、除、取餘、自增、自減等,當然,高級的位移運算、邏輯運算、條件運算等,這個命令也可以輕鬆實現,需要注意的是,這裡的操作數只能是整數,否則命令會報錯:

圓括號

這也是bash shell一種比較常用的數學計算方式,需要用2個圓括號將數學表達式括起來,然後進行相關計算,得到最終結果,基本功能和let命令差不多,可以實現日常大部分的數學計算,包括加減乘除四則運算、自增、自減等,操作數也只能是整數:

方括號

這種方式和圓括號差不多,需要用1個方括號將數學表達式括起來,然後進行運算,得出最終結果,目前也支持自減自增、加減乘除等常見數學計算,需要注意的是,這裡的操作數也只能是整數,否則運算會出錯:

expr命令

這是Linux一個比較高級的數學運算命令,也比較常用,支持加減乘除等常見數學運算,除此之外,還支持邏輯運算、關係運算等高級功能,與前面3種方式一樣,expr命令目前也只限整數,而且運算符兩邊必須要有空格,否則會報語法錯誤:

目前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種方式(命令)來實現,分別是let、圓括號、方括號、expr和bc,下面我簡單介紹一下,感興趣的朋友可以嘗試一下:

let命令

這是bash內置的一個算數運算命令,最簡單也最常用,可以實現日常大部分的數學計算,包括加、減、乘、除、取餘、自增、自減等,當然,高級的位移運算、邏輯運算、條件運算等,這個命令也可以輕鬆實現,需要注意的是,這裡的操作數只能是整數,否則命令會報錯:

圓括號

這也是bash shell一種比較常用的數學計算方式,需要用2個圓括號將數學表達式括起來,然後進行相關計算,得到最終結果,基本功能和let命令差不多,可以實現日常大部分的數學計算,包括加減乘除四則運算、自增、自減等,操作數也只能是整數:

方括號

這種方式和圓括號差不多,需要用1個方括號將數學表達式括起來,然後進行運算,得出最終結果,目前也支持自減自增、加減乘除等常見數學計算,需要注意的是,這裡的操作數也只能是整數,否則運算會出錯:

expr命令

這是Linux一個比較高級的數學運算命令,也比較常用,支持加減乘除等常見數學運算,除此之外,還支持邏輯運算、關係運算等高級功能,與前面3種方式一樣,expr命令目前也只限整數,而且運算符兩邊必須要有空格,否則會報語法錯誤:

bc命令

這也是一個比較高級的數學運算命令,類似一個計算器,與前面4種方式(命令)不同,bc命令既支持整數運算,也支持浮點數運算,可以人為設置精度,而且支持函數調用,如果你需要實現複雜計算功能的話,可以考慮使用一下這個命令,非常實用也非常簡單:

至此,我們就介紹完了在Linux bash shell環境下進行數學計算。總的來說,這5種方式(命令)都非常簡單,只要你有一定的Linux基礎,熟悉一下相關文檔和示例,很快就能掌握的。對於簡單的整數運算,前4種方式就可以輕鬆實現,如果是複雜的浮點數運算,可以使用bc命令,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。

产品经理老胡
2019-08-02

老胡的看法:

Linux的bash shell下面有很多支持整數和浮點運算的工具,比如常見的echo(只支持整數)、printf、awk、bc、dc、以及一些Linux下我們常用的編程語言框架如node、perl、python等都可以用來做一些簡單的數學運算。這裡我重點介紹幾個:

老胡的看法:

Linux的bash shell下面有很多支持整數和浮點運算的工具,比如常見的echo(只支持整數)、printf、awk、bc、dc、以及一些Linux下我們常用的編程語言框架如node、perl、python等都可以用來做一些簡單的數學運算。這裡我重點介紹幾個:

使用printf進行數學計算

利用printf的格式化輸出特性,可以計算echo無法輸出的浮點數。printf可以支持四則運算、乘方、科學計數法等計算。不過無法支持三角函數和對數計算。對於一般的情形來說其實已經夠用:

%f表示以浮點數格式輸出,.後面的數字表示保留的小數位數。打印的字符串裡**表示乘方,e表示科學計數法。

老胡的看法:

Linux的bash shell下面有很多支持整數和浮點運算的工具,比如常見的echo(只支持整數)、printf、awk、bc、dc、以及一些Linux下我們常用的編程語言框架如node、perl、python等都可以用來做一些簡單的數學運算。這裡我重點介紹幾個:

使用printf進行數學計算

利用printf的格式化輸出特性,可以計算echo無法輸出的浮點數。printf可以支持四則運算、乘方、科學計數法等計算。不過無法支持三角函數和對數計算。對於一般的情形來說其實已經夠用:

%f表示以浮點數格式輸出,.後面的數字表示保留的小數位數。打印的字符串裡**表示乘方,e表示科學計數法。


使用bc進行數學計算

bc是BestCalculator的首字母縮寫,它是一個支持交互式計算的命令行計算器,同時也支持內聯模式的調用。通過scale可以設置輸出的小數精度,通過obase設置輸出的進制,ibase設置輸入的進制,以此來實現更加強大的功能:

老胡的看法:

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+算術式就可以進行運算了:

老胡的看法:

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 -

老胡的看法:

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裡面的數學表達式就可以:

老胡的看法:

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程序。


如果我的回答對你有點價值,請莫忘點贊加關注,謝謝!歡迎在評論區發表各種意見。

本文為作者原創,嚴禁轉載,違者必究。

聊科技爱生活
2019-08-02

1. linux 一般帶有命令行計算器:bc.

進入計算器命令: bc -l

然後可以使用常用的計算表達式,比如 10 + 100, 10 / 3 等等


2. 直接運行 Python,可以使用 Python 的控制檯計算啊,也很方便。

一个精灵No
2019-08-02

你都沒有數據庫怎麼做計算呢?最起碼你可以安裝Oracle數據庫或者MYSQL數據庫。

相關推薦

推薦中...