Linux 中數組的使用


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

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

arr=(1 2 3 4 5)

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

arr=('a' 'b' 'c')

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

數組的操作

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

1.計算數組的長度

len=${#arr[*]}

2、輸出所有數組的值

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

3、輸出數組的單個元素值(數組下標值從0開始,所以5值為空)

 

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

 

 5、數組結合函數和read一起使用 使用$@和”$@“以及$*

輸出結果

 

使用"$*"時

輸出結果

 

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

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

輸出結果

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

 輸出結果

 

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

 


免責聲明!

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



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