第一次使用shell中的數**算的時候,相對於c/c++中的直接使用來說,十分的麻煩,並且不是很好記憶
expr方法可以直接在命令列使用,當遇到在shell中有其他含義的操作符的時候,需要使用'\'轉義符,並且嚴格要求操作符兩邊必須有空格 如:
注意:運演算法兩邊一定要有空格
$ expr 1 + 5
6$ expr 5 \* 5
25
如果expr方法使用在指令碼中時:
val=$(expr 1 + 1)
需要注意的是:expr不支援浮點數運算,所以運算的數字中不能出現浮點數,否則會出現下面的錯誤
如果使用數**算,可以使用方括號將數學表示式圍起來$[ operation ]或者$(( operator ))
同樣方括號同樣支援在命令列中直接執行,如:
在指令碼中使用方法:
val=$[1 + 1]
與expr相同,方法不支援浮點數運算,使用將會出現以下錯誤:
與expr方法不同:方括號中運算子兩兩邊不需要新增空格 shell中存在的運算子不需要使用轉義符
如果版本中沒有bc,則使用yum install bc安裝bc
最重要的不同是:bc支援浮點型運算,浮點運算是由內建的scale控制的,預設scale變數為0,所以預設計算結果不包含小數,我們可以手工指定小數點的個數即可
在命令列中使用:
或者使用管道符:
指令碼中使用,我們需要使用管道符,將要運算的數值作為bc的引數
《linus命令列與shell指令碼程式設計大全》
shell中的數學計算
shell中的賦值和操作預設都是字串處理,在此記下shell中進行數 算的幾個特殊方法,以後用到的時候可以來看,呵呵。1 錯誤方法舉例 a var 1 1 echo var 輸出的結果是1 1,悲劇,呵呵 b var 1 var var 1 echo var 輸出結果是1 1,依然悲劇,呵呵 2 正...
bash shell中的數學計算
在寫shell指令碼的時候會用到很多的數 算,簡單的乙個游標 1 1,或者更多一點的浮點運算等,shell中數學計算稍麻煩,我想每個人都試過var 1 1 或者var 1這類錯誤。下面對shell中做數學計算小做總結 其他的減乘除類似,要注意乘法中的 號需要做轉義 即可 bc更常用,對運算來說也更好...
shell 中數學計算
1 expr 命令 expr命令是乙個手工命令列計數器,用於在unix linux下求表示式變數的值,一般用於整數值,也可用於字串。格式 expr argument operator argument 引數說明 argument 為第乙個引數 operator 為操作運算子 argument 為第二...