Linux shell 腳本中變量的數學計算【轉】


本文轉載自:http://blog.csdn.net/qinghezhen/article/details/9194287

首先從一個例子說起:

 

[plain]  view plain  copy
 
  1. x=1+1  
  2. echo $x  


你是不是期待着輸出2啊?讓你失望了,這樣輸出的結果是1+1。驚訝為什么呢?疑問這是因為在shell script中變量類型默認為“字符串”,所以若不指定變量類型,1+1是一個“字符串”而不是“計算式”。得意那么怎么得到我們想要的結果呢?疑問方法很多,但是總結起來就是兩種,一種就是生命變量的類型。另一種是對特定的計算式進行處理。

 

1)首先看第一類方法:聲明變量的類型

我對上述程序做出以下修改:

 

[plain]  view plain  copy
 
  1. declare -i x  
  2. x=1+1  
  3. echo $x  

 

 

在上述腳本中我把x聲明為整型數字(integer)類型,這時輸出結果為2

或者你可以這么寫:

 

[plain]  view plain  copy
 
  1. declare -i x  
  2. declare -i y  
  3. x=1  
  4. y=2  
  5. x=$x+$y  
  6. echo $x  


輸出結果為3,假如我沒有聲明 x, y 的類型為整型數字,那么輸出結果是1+2

 

2)

a)使用let命令:(注意的是let僅支持整數運算)

 

[plain]  view plain  copy
 
  1. let 'x=1+1'  
  2. echo $x  


這時輸出結果為2

 

b)使用$[ ]

 

[plain]  view plain  copy
 
  1. x=1  
  2. y=2  
  3. x=$[ x+y]  
  4. echo $x  

輸出結果為:3

 

這里要注意的是注意: 

 

  • $[]將中括號內的表達式作為數學運算先計算結果再輸出 
  • 對$[]中的變量進行訪問時加不加$無所謂 
  • $[]支持的運算符與let相同,但也只支持整數運算 

 

c)使用$(( ))

 

[plain]  view plain  copy
 
  1. x=1  
  2. y=2  
  3. x=$(( x+y))  
  4. echo $x  


輸出結果是3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM