數組小結

 數組

 

 

一.     引言

爲什麼需要數組呢?有時候需要存儲或處理一系列數據,數組就可以充當這樣的角色,它在內存中是相連的數據,並且在棧中的引用只有一個,如果不用數組,那數據就得一個一個定義一個一個聲明,浪費內存空間,顯然不合理.

二.       定義

變量:存儲單個元素的內存空間

數組:存儲多個元素的連續的內存空間,相當於多個變量的集合

數組名的索引

1.     索引:編號從0開始,屬於數值索引

2.     注意:索引可支持使用自定義的格式,而不僅僅是數值格式,即爲關聯索引,bash4.0版本之後開始支持

3.     Bash的數組支持稀疏格式(稀疏格式即爲索引不連續

聲明數組

1.     declare  –a  數組名

2.     declare–A  數組名

3.     兩者不可相互轉換

三.       數組賦值

數組賦值有4

1.     一次只賦值一個元素

wKiom1m-AXbysmXbAAAfTv-0KEw832.png-wh_50

2.     一次賦值全部元素

wKioL1m-AXeQANVYAAAZVoYQguc850.png-wh_50

3.     只賦值特定元素

wKiom1m-AbOTRvSvAAAftf3Z44A785.png-wh_50

 

4.     交互式數組只對賦值

wKioL1m-AZDCQ7AvAAAQAgcNiJQ345.png-wh_50

 

四.       引用數組

1.     輸出數組:echo ${array_name[index]}

注意:省略【index】表示引用下標(賦的編號)爲0的元素

以上述爲例:echo ${array[0]}

        echo ${array[1]}

2.     引用數組所有元素

${ARRAY_NAME[*]}

${ARRAY_NAME[@]}

以上述爲例:echo ${array[*]}

        echo ${array[@]}

3.     數組長度

wKioL1m-AZ2zMv-2AAARO3CFATY358.png-wh_50

 

4.     刪除數組中的某些元素

wKioL1m-AbnAmIHYAAAPLZkS2og313.png-wh_50

5.     刪除整個數組

Unset 數組名

 

五.       數組數據處理

1.引用數組中的元素:

數組切片:${ARRAY[@]:offset:number}

offset: 要跳過的元素個數

number: 要取出的元素個數

2.取偏移量之後的所有元素

${ARRAY[@]:offset}

3.向數組中追加元素:

ARRAY[${#ARRAY[*]}]=value

wKiom1m-Af3Dh6sZAAASbAH0XeE989.png-wh_50

4.關聯數組:

declare -A ARRAY_NAME

ARRAY_NAME=([idx_name1]='val1'[idx_name2]='val2‘...)

注意:關聯數組必須先聲明再調用

六.       實例

生成5個隨機數,保存於數組中,並找出最大值和最小值

第一種方法

    代碼如下:

    wKioL1m-AdrCh2J2AAAnsmnBqM8522.png-wh_50

 

輸出結果

wKiom1m-AhfxqdSpAAAY-kYq5L0977.png-wh_50

第二種方法

wKioL1m-AfLgbyriAAAmItzL0Yg962.png-wh_50

 

輸出結果

wKiom1m-AizhU4C5AAAg1pzytqI602.png-wh_50

2.編寫腳本,定義一個數組,數組中的元素是/var/log 目錄下所有以.log 結尾的文件;統計出其下標爲偶數的文件中的行數之和

       

       

  wKiom1m-AmfgHM23AAAmRTvszxA812.png-wh_50

  wKioL1m-AjjyUBMVAAB7sOGAsR0829.png-wh_50


 

 

 

 

 

 

 

 

 


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