數組小結
數組
一. 引言
為什麽需要數組呢?有時候需要存儲或處理一系列數據,數組就可以充當這樣的角色,它在內存中是相連的數據,並且在棧中的引用只有一個,如果不用數組,那數據就得一個一個定義一個一個聲明,浪費內存空間,顯然不合理.
二. 定義
變量:存儲單個元素的內存空間
數組:存儲多個元素的連續的內存空間,相當於多個變量的集合
數組名的索引
1. 索引:編號從0開始,屬於數值索引
2. 註意:索引可支持使用自定義的格式,而不僅僅是數值格式,即為關聯索引,bash4.0版本之後開始支持
3. Bash的數組支持稀疏格式(稀疏格式即為索引不連續
聲明數組
1. declare –a
2. declare–A 數組名
3. 兩者不可相互轉換
三. 數組賦值
數組賦值有4種
1. 一次只賦值一個元素
2. 一次賦值全部元素
3. 只賦值特定元素
4. 交互式數組只對賦值
四. 引用數組
1. 輸出數組:echo ${array_name[index]}
註意:省略【index】表示引用下標(賦的編號)為0的元素
以上述為例:echo ${array[0]}
echo ${array[1]}
2. 引用數組所有元素
${ARRAY_NAME[*]}
${ARRAY_NAME[@]}
以上述為例:echo ${array[*]}
echo ${array[@]}
3. 數組長度
4. 刪除數組中的某些元素
5. 刪除整個數組
Unset 數組名
五. 數組數據處理
1.引用數組中的元素:
數組切片:${ARRAY[@]:offset:number}
offset: 要跳過的元素個數
number: 要取出的元素個數
2.取偏移量之後的所有元素
${ARRAY[@]:offset}
3.向數組中追加元素:
ARRAY[${#ARRAY[*]}]=value
4.關聯數組:
declare -A ARRAY_NAME
ARRAY_NAME=([idx_name1]=‘val1‘[idx_name2]=‘val2‘...)
註意:關聯數組必須先聲明再調用
六. 實例
生成5個隨機數,保存於數組中,並找出最大值和最小值
第一種方法
代碼如下:
輸出結果
第二種方法
輸出結果
2.編寫腳本,定義一個數組,數組中的元素是/var/log 目錄下所有以.log 結尾的文件;統計出其下標為偶數的文件中的行數之和
本文出自 “12457645” 博客,請務必保留此出處http://12467645.blog.51cto.com/12457645/1966023
數組小結