Shell中那些你必須知道的數值運算

2021-10-08 11:23:57 字數 2807 閱讀 7494

步驟一:整數運算工具

1)使用expr命令

乘法操作應採用 * 轉義,避免被作為shell萬用字元;參與運算的整數值與運算操作符之間需要以空格分開,引用變數時必須加$符號。

首先定義變數x=1234,然後分別計算與78的加減乘除和求模運算結果:

1.	[root@dyy ~]# x=1234                              //定義變數x

2. [root@dyy ~]# expr $x + 78 //加法

3. 1312

4. [root@dyy ~]# expr $x - 78 //減法

5. 1156

6. [root@dyy ~]# expr $x \* 78 //乘法,操作符應新增\轉義

7. 96252

8. [root@dyy ~]# expr $x / 78 //除法,僅保留整除結果

9. 15

10. [root@dyy ~]# expr $x % 78 //求模

11. 64

2)使用[]或

或(())表示式

乘法操作*無需轉義,運算子兩側可以無空格;引用變數可省略 $ 符號;計算結果替換表示式本身,可結合echo命令輸出。

同樣對於變數x=1234,分別計算與78的加減乘除和求模運算結果:

1.	[root@dyy ~]# x=1234   

2. [root@dyy ~]# echo $[x+78]

3. 1312

4. [root@dyy ~]# echo $[x-78]

5. 1156

6. [root@dyy ~]# echo $[x*78]

7. 96252

8. [root@dyy ~]# echo $[x/78]

9. 15

10. [root@dyy ~]# echo $[x%78]

11. 64

3)使用let命令

expr或[]、

、(())方式只進行運算,並不會改變變數的值;而let命令可以直接對變數值做運算再儲存新的值。因此變數x=1234,在執行let運算後的值會變更;另外,let運算操作並不顯示結果,但是可以結合echo命令來檢視:

1.	[root@dyy ~]# x=1234  

2. [root@dyy ~]# let y=x+22

3. [root@dyy ~]# echo $y

4. 1256

5. [root@dyy ~]# let x++; echo $x # x++(x=x+1)

6. [root@dyy ~]# let x--; echo $x # x--(x=x-1)

7. [root@dyy ~]# let x+=78 ; echo $x # x+=78(x=x+78)

8. [root@dyy ~]# let x-=78 ; echo $x # x-=78(x=x-78)

9. [root@dyy ~]# let x*=78 ; echo $x # x*=78(x=x*78)

10. [root@dyy ~]# let x/=78 ; echo $x # x/=78(x=x/78)

11. [root@dyy ~]# let x%=78 ; echo $x # x%=78(x=x%78)

1.	[root@dyy ~]# bc 

2. bc 1.06.95

4. this is free software with absolutely no warranty.

5. for details type `warranty'.

6. 12.34+56.78 //加法

7. 69.12

8. 12.34-56.78 //減法

9. -44.44

10. 12.34*56.78 //乘法

11. 700.66

12. 12.34/56.78 //除法

13. 0

14. quit //退出互動計算器

15. [root@dyy ~]#

2)bc非互動式運算

將需要運算的表示式通過管道操作交給bc運算。注意,小數字的長度可採用scale=n限制,除此以外也受參與運算的數值的小數字影響。以計算小數12.34與5.678的四則運算為例,相關操作如下:

1.	[root@dyy ~]# echo 'scale=4;12.34+5.678' | bc

2. 18.018

3. [root@dyy ~]# echo 'scale=4;12.34*5.678' | bc

4. 70.0665

5. [root@dyy ~]# echo 'scale=4;12.34/5.678' | bc

6. 2.1733

那些你必須知道的常用註解

public class testserviceimpl qualifier autowired是根據型別進行自動裝配的。如果當spring上下文中存在多個userdao型別的bean時,就會丟擲beancreationexception異常 如果spring上下文中不存在userdao型別的bea...

那些你必須知道的Git乾貨

git本地有三個工作區,再加上遠端的git倉庫共有四個工作區 列出所有本地分支 git branch 列出所有遠端分支 git branch r 新建乙個分支,但依然停留在當前分支 git branch branch name 合併指定分支到當前分支 git merge branch name 切換...

關於Tomcat,你必須知道的那些事兒

1.如何修改tomcat的埠號?答 在conf的server.xml中 找到 的地方,修改port引數即可。2.如何配置虛擬目錄?path 表示虛擬目錄名,訪問時使用虛擬目錄名作為web目錄訪問 docbase 表示實際專案的磁碟位置。reloadable 3.如何部署web應用?其中通過瀏覽器訪問...