bash的數值運算

在shell中,變量的默認類型是字符串類型,而字符串類型是不能進行數值運算的,所以shell提供了兩種方式來實現數值運算。
1. 用declare命令顯式地聲明變量的類型。
2. 用expr/let數值運算工具或着特殊書寫格式來完成shell中的數值運算。
一、declare命令介紹
目的:顯式地聲明變量的類型
格式:declare +/-選項 變量名。
其中-表示給變量設定類型屬性,+表示給變量取消類型屬性。
選項有:
a 表示數組型
i 表示整型,
p 表示查看變量類型的屬性
r 表示設置變量爲只讀
舉例:
1. 定義變量val爲數組型: declare -a val,我們可以通過val[0]=1來講數組變量val的第一個元素賦值爲1。我們也可以通過val=(0 1 2 3 4 5 6 7)爲val數組一次性賦值8個元素。我們用${val[下標]}來查看數組中的元素,如果省略下標,將查看到的是數組第一個元素的值,若下標用*代替,則查看數組變量中的所有元素。
2. 定義變量val爲整型: declare -i val,只有將val定義成了整型,存儲的值纔是數值運算後的結果。例如 declare -i val=1+2,這裏val中的值將是3,如果不寫 declare -i,而直接寫val=1+2,val中的值將是”1+2”。
3. 定義變量val爲環境變量: declare -x val,它的效果等同於 export val。
4. 查看val的類型屬性: declare -p val, 它會告訴你val的類型爲何。
5. 設置變量val爲只讀:declare -r val。這個要慎用,設置val爲只讀後,不能對其進行任何操作,包括取消類型屬性,所以val將常駐當前shell,直到其退出,變量自動釋放。
二、利用特殊工具或特殊書寫格式來進行數值運算
1. 數值運算工具: expr/let
expr用法格式:變量名= expr 變量1 運算符 變量2,等號左邊不能有空格, expr兩邊必須有空格 運算符兩邊必須有空格。比如:val= expr 1 + 2,val中的值將是3。
let用法格式:let 變量名=變量1運算符變量2,等號兩邊,運算符兩邊不能有空格。比如:let val=1+2, val中的值將是3。
2. 特殊格式
格式如下:val=\$((1+2)),將運算的變量用雙括號括起來,可以達到算數運算的效果,請記住需要在雙括號外加上\$符號用於取運算後的值,並將值賦予變量val。
總結:因爲shell默認的類型是字符串型,而字符串類型是不能進行數學意義上的數值運算,所以我們可以通過1. 利用declare命令將變量類型顯式定義爲整型進而對其進行數值運算。2. 可以通過expr/let工具和雙括號來實現數值運算。
若有不對之處,敬請指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章