數組是有序的元素序列 。若將有限個類型相同的變量的集合命名,那麼這個名稱爲數組名。組成數組的各個變量稱爲數組的份量,也稱爲數組的元素,有時也稱爲下標變量。用於區分數組的各個元素的數字編號稱爲下標。數組是在程序設計中,爲了處理方便, 把具備相同類型的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類數據元素的集合稱爲數組。shell
在shell中數組有兩種類型:數組
索引數組使用數字做爲下標,下標默認從0開始。ide
root@iZuf6ilzd4iqvuj4dvuiwtZ:~# # 直接聲明 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# array=(10 20 30 40 50 60 60 80 90) # 用空格分隔 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# # 使用declare root@iZuf6ilzd4iqvuj4dvuiwtZ:~# declare -a arrays # 聲明一個索引數組
關聯數組是一種具備特殊索引方式的數組。不只能夠經過整數來索引它,還能夠使用字符串或者其餘類型的值(除了NULL)來索引它。ui
# 關聯數組聲明必須使用declare -A 方式,不然shell會將其認爲是索引數組 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# declare -A info # 定義一個管理數組 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# info['name']='raojinlin' # 插入name鍵,賦值 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# info['age']=21 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# info['obj']='ops' root@iZuf6ilzd4iqvuj4dvuiwtZ:~# echo ${info[@]} # 獲取數組 raojinlin 21 ops root@iZuf6ilzd4iqvuj4dvuiwtZ:~#
訪問數組設計
root@iZuf6ilzd4iqvuj4dvuiwtZ:~# echo ${array[0]} # array[index] 10 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# # 使用通配符* 或 @ 能夠訪問數組中的全部元素 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# echo ${array[@]} 10 20 30 40 50 60 60 80 90 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# echo ${array[*]} 10 20 30 40 50 60 60 80 90 root@iZuf6ilzd4iqvuj4dvuiwtZ:~# array[0]=10 # 將下標爲0的元素賦值爲10
# 語法:${#數組[@|*]} root@iZuf6ilzd4iqvuj4dvuiwtZ:~# echo ${#array[*]} 9 root@iZuf6ilzd4iqvuj4dvuiwtZ:~#
# 語法:${!數組[@|*]} root@iZuf6ilzd4iqvuj4dvuiwtZ:~# echo ${!info[@]} name age obj root@iZuf6ilzd4iqvuj4dvuiwtZ:~#
使用for循環能夠遍歷數組code
root@iZuf6ilzd4iqvuj4dvuiwtZ:~# for var in ${info[@]};do echo $var;done raojinlin 21 ops root@iZuf6ilzd4iqvuj4dvuiwtZ:~#