2015年5月7日 星期四

[BashShell] 變數計算

Bash shell 的算術運算有四種方式。

1.  使用expr 
     ex: r=` expr 4 + 5 `
           r=` expr 4 \* 5 `

     note 1:  數字與符號間要有空白。
     note 2:  因為* 對於bash 來說有特殊意義(萬用字元),所以要先使用反斜線 (\) 來取消*的特殊意義。  
     note 3: expr無法使用(**)當作乘冪。
     note 4:expr 無法處理浮點運算,因此須改用其他方式,如$(())。
    
2.  使用 $(())
      ex: r=$(( 4 + 5))
            r=$(echo "4.0*2.0"|bc)  

       note 1:  此方式不需要使用反斜線來取消*的特殊意義。
       note 2:  亦可使用awk 來處理浮點運算,如:
           r=$(awk 'BEGIN{print 4.0*2.0 }')

            
3. 使用$[]
     ex: r=$[ 4 + 5 ]  

4. 使用let 
     ex: m=10
           let n=m+1
           則n=11
           (也可寫成let m=m+1 用來當作迴圈內計算)

NOTE:
 雖然上述四種方式都可以達到需求,但並非每個方式均可跨平台使用,建議使用expr會有較好的可攜性。


 

沒有留言:

張貼留言