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傳遞參數型(稍微靈活點,更加不知道有什麼鬼用,鳥改哈就闊以啦,估計不多會用這些吧)
輸出結果
正好看到這些,研究了好久,起初都是一臉懵逼,寫出來不知道有沒有啥子用,我工做的地方好像都沒用到額,有點尷尬!!!