Linux 中數組的使用

Linux中數組本人可能用的相對較少,可是會常常碰見,也容易忘記,就順便記錄下來吧shell

數值類型的數組:一對括號表示數組,數組中元素之間使用「空格」來隔開數組

arr=(1 2 3 4 5)函數

字符串類型數組:一樣,使用一對括號表示數組,其中數組中的元素使用雙引號或者單引號包含,一樣使用「空格」來隔開blog

arr=('a' 'b' 'c')字符串

數組的任何元素均可以用${arr[下標]}來引用,花括號是必須的,以免和路徑擴展衝突。 

數組的操做class

以數值型數組爲例:arr=(1 2 3 4 5)變量

1.計算數組的長度擴展

len=${#arr[*]}遍歷

二、輸出全部數組的值引用

若是 [下標] 是@或是*,它擴展爲arr的全部成員。這兩種下標只有在雙引號中才不一樣。在雙引號中,${name[*]}擴展爲一個詞,由全部數組成員的值組成,
用特殊變量IFS的第一個字符分隔數組成員;${arr[@]}將arr的每一個成員擴展爲一個詞。 若是數組沒有成員,${arr[@]} 擴展爲空串。

三、輸出數組的單個元素值(數組下標值從0開始,因此5值爲空)

 

四、在shell腳本中數組和read的結合使用

 

 五、數組結合函數和read一塊兒使用 使用$@和」$@「以及$*

輸出結果

 

使用"$*"時

輸出結果

 

 六、來點新的(鬼知道有啥用)

向函數傳遞的參數是$arg1,咱們知道不能向函數傳遞一個數組,而應該是遍歷的數組的值,因此在arg1賦值這裏,不能寫arg1=(${echo ${myarray[*]})),
這樣至關於arg1是一個數組了,而arg1=$(echo ${myarray[*]})返回的則是1 2 3 4 5單個的輸出值;函數的返回同理,返回的是單個的數值,接受的時候加上(),組成數組

輸出結果

七、結合read傳遞參數型(稍微靈活點,更加不知道有什麼鬼用,鳥改哈就闊以啦,估計不多會用這些吧)

 輸出結果

 

 正好看到這些,研究了好久,起初都是一臉懵逼,寫出來不知道有沒有啥子用,我工做的地方好像都沒用到額,有點尷尬!!!

相關文章
相關標籤/搜索