數組就是相同資料類型的元素按一定順序排列的集合,就是把有限個類型相同的變數用一個名字命名,然後用編號區分他們的變數的集合,這個名字稱為數組名,編號稱為下標。組成數組的各個變數稱為數組的元素。數組是在程式設計中,為了處理方便, 把具有相同類型的若干變數按有序的形式組織起來的一種形式。
一、數組的表示方式
1、下標數組
下標必須為整數,格式:數組名[下標],下標預設從0開始。
shell支援稀疏數組,下標整數不需要連續。
聲明方式:declare -a 數組名
2、關聯陣列
關聯陣列可以使用任意的字串作為下標(不必是整數)來訪問數組元素。bash4.0開始支援關聯陣列。
格式:數組名[任一字元串]
聲明方式:declare -A 關聯陣列
另外,shell只支援一維數組,不支援多維陣列。
二、數組的賦值
三、數組的訪問
通過操作文法來實現對數組元素的訪問。
文法格式有以下幾種:
數組的長度:
${#ARRAY[*]}:顯示元素個數;
${#ARRAY[@]}:顯示元素個數;
${#ARRAY[#]}:第#個元素的字元個數;
${#ARRAY}:第0個元素的字元個數;
數組的元素:
${ARRAY[*]}:顯示所有元素內容;
${ARRAY[@]}:顯示所有元素內容;
${ARRAY[#]}:顯示第#個元素;
${ARRAY}:顯示第0個元素;
數組的索引值:
$[!ARRAY[*]}:顯示所有的索引值;
$[!ARRAY[@]}:顯示所有的索引值。
執行個體:寫一個指令碼,產生10個隨機數,儲存至數組中,而後顯示數組下標為偶數的元素:
四、從數組中挑選元素
如果想要從數組中取出某幾個元素時,使用下標逐個尋找比較麻煩,可以使用數組的位移元素功能來簡化操作。
文法格式:
${ARRAY[@]:offset:number}
offset:位移元素個數;
number:取出的元素個數;
執行個體:數組off_array中有6個元素,假設我們想要取3月到5月這三個值:
五、數組複製
$@:每個參數是一個獨立的串,建議使用;
$*:所有元素當做一個串。
執行個體:複製一個數組中下標為偶數的元素至新數組中:
六、從數組中刪除元素
格式:unset 數組名[下標]
七、綜合執行個體
產生10個隨機數,並對這10個隨機數進行排序。