數組概念
結合生產需求將具有某些共同特性的數據組織爲一個集合便於遍歷、查詢管理,數組實旨爲變量的集合,shell中的數組相當於Python的列表,字典。
普通數組
1.索引號爲數字,默認起始索引號爲0
2.相當於Python中的列表
3.不用聲明,直接使用
關聯數組
1.索引格式可以自定義,關聯數組數據實旨爲key、Value這樣的鍵值構成的集合
2.相當於python中的字典。
3.必須先聲明
稀疏數組:
索引號的不連續便成了稀疏數組
數組的聲明:
普通數組:declare -a ARRAY_NAME
關聯數組:declare -A ARRAY_NAME
查看系統中定義的數據組 declare -a
數組賦值
一次只賦值一個元素
一次賦值所有元素
只賦值指定元素
交互式數組
數據元素引用
引用數組元素:
${ARRAY_NAME[INDEX]}
引用數組所有元素
${ARRAY_NAME[*]}
${ARRAY_NAME[@]}
數據的長度
${#ARRAY_NAME[*]}
${#ARRAY_NAME[@]}
刪除數組中的元素:導致稀疏格式
unset ARRAY[INDEX]
刪除整個數組
unset ARRAY
例:
數組數據處理
語法:${ARRAY[@]:offset:number} n爲起終位置,m爲截取長度
記憶思路:
偏移量:從左到右元素字符串起始偏移量編號爲0;從右到從元素字符串起始偏移量編號爲-1
offset:元素字符串偏移量編號 對應Python字符串切片中的起始位置
offset爲正數時代表從左向右截取,爲負數時代表從右向左截取。
number:要截取元素字符串的長度 對應Python字符串切片中的結束位置。
number爲正數時代表截取長度,爲負數則代表結束位置,當number爲代表結束位置時截取內容不包括第m位
注意:使用負數截取時,負數前必須用空格與:冒號隔開。
實例1:offset爲正數時,從左向右截取:${ARRAY[@]:n:m},n爲起終位置,m爲截取長度
從左向右,截取起始位置爲n,取m個字符。
如果不指定截取長度m時,則是截取第n位到元素字符串的最後
實例2:
offset爲負數時,從右向左截取,爲負數時:冒號後必須加空格${ARRAY[@]: -n: -m} 或${ARRAY[*]: -n:m}
${ARRAY[@]: -n:m} :從右到左,元素字符串偏移量由右到左編號爲-1到-n,截取起始位置爲-n,取m個字符。
${ARRAY[@]: -n: -m} :從右到左,元素字符串偏移量由右到左編號爲-1到-n,截取起始位置爲-n,結束位置爲-m個字符。
一定要銘記數組一旦被定義,只能向數組中一個一個的追加元素,或修改元素值,不能批量添加元素。批量賦值批量的是數組初始化。
ARRAY[${#ARRAY[]}]=value 元素個數加1來賦值