Linux 數值運算

2022-07-26 19:39:15 字數 771 閱讀 9622

因為shell指令碼是屬於弱語言,沒有變數型別的概念,所以定義變數會預設為字串。就算看上去是乙個數字,當直接進行計算時,就會出錯:

x=1

echo $x+=1

# 輸出1+=1,並不是自己想要的2

所以當我們需要進行數值運算時,我們需要一些特殊的方法,在linex中提供了好幾種方法。

x=1

echo $[$x+=1]

expr為linux中的乙個命令,可以用於數值計算,也可以用於字串操作:

x=1

expr 14 % 9

expr 10 + 10

expr $x + 1

# 使用乘號比較特殊,必須用反斜槓

expx $x \* 3

使用expr也存在缺陷:進行計算的值只能為整數,得到的結果也會以整數形式返回。

相比於$expr,這種方式功能比較強大:

x=1

(( y = x + 1,z = y + 1 ))

echo $z

a=10

b=10

total=$((a*b))

var=1

# 這種寫法運算子間不能有空格

let "var+=1"

let var+=1

echo $var

Flex數值運算

專案中用到的,留存一下 需求很簡單就是把分鐘轉換成多少小時多少分,主要用到除法和求餘 這是正確的 沒有問題。但我們若是用number觸發,在fb種可能會遇到一些問題,在http bbs.9ria.com viewthread.php?tid 22270 page 1的例子中 package 先普及一...

shell數值運算

原文 1 錯誤方法舉例 a var 1 1 echo var 輸出的結果是1 1,悲劇,呵呵 b var 1 var var 1 echo var 輸出結果是1 1,依然悲劇,呵呵 2 正確方法 1 使用let var 1 let var 1 echo var 輸出結果為2,這次沒有悲劇 注意 a ...

linux shell數值運算

1 bc命令 1直接進入其命令列執行 bc q 回車 2寫個檔案一起執行 bc q bc test.bc 純文字 3直接在shell中管道符交由bc執行數 算 echo 2 3 bc 4可處理進製轉換,設定精度 2 expr命令 可以是數字或者字串 3let 命令 4 expr 5 a 這種自加操作...