shell腳本編程之?dāng)?shù)組
數(shù)組就是相同數(shù)據(jù)類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區(qū)分他們的變量的集合,這個名字稱為數(shù)組名,編號稱為下標(biāo)。組成數(shù)組的各個變量稱為數(shù)組的元素。數(shù)組是在程序設(shè)計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來的一種形式。
一、數(shù)組的表示方式
1、下標(biāo)數(shù)組
下標(biāo)必須為整數(shù),格式:數(shù)組名[下標(biāo)],下標(biāo)默認(rèn)從0開始。
shell支持稀疏數(shù)組,下標(biāo)整數(shù)不需要連續(xù)。
聲明方式:declare -a 數(shù)組名
2、關(guān)聯(lián)數(shù)組
關(guān)聯(lián)數(shù)組可以使用任意的字符串作為下標(biāo)(不必是整數(shù))來訪問數(shù)組元素。bash4.0開始支持關(guān)聯(lián)數(shù)組。
格式:數(shù)組名[任意字符串]
聲明方式:declare -A 關(guān)聯(lián)數(shù)組
另外,shell只支持一維數(shù)組,不支持多維數(shù)組。
二、數(shù)組的賦值
三、數(shù)組的訪問
通過操作語法來實現(xiàn)對數(shù)組元素的訪問。
語法格式有以下幾種:
數(shù)組的長度:
${#ARRAY[*]}:顯示元素個數(shù);
${#ARRAY[@]}:顯示元素個數(shù);
${#ARRAY[#]}:第#個元素的字符個數(shù);
${#ARRAY}:第0個元素的字符個數(shù);
數(shù)組的元素:
${ARRAY[*]}:顯示所有元素內(nèi)容;
${ARRAY[@]}:顯示所有元素內(nèi)容;
${ARRAY[#]}:顯示第#個元素;
${ARRAY}:顯示第0個元素;
數(shù)組的鍵值:
$[!ARRAY[*]}:顯示所有的鍵值;
$[!ARRAY[@]}:顯示所有的鍵值。
實例:寫一個腳本,生成10個隨機(jī)數(shù),保存至數(shù)組中,而后顯示數(shù)組下標(biāo)為偶數(shù)的元素:
四、從數(shù)組中挑選元素
如果想要從數(shù)組中取出某幾個元素時,使用下標(biāo)逐個查找比較麻煩,可以使用數(shù)組的偏移元素功能來簡化操作。
語法格式:
${ARRAY[@]:offset:number}
offset:偏移元素個數(shù);
number:取出的元素個數(shù);
實例:數(shù)組off_array中有6個元素,假設(shè)我們想要取3月到5月這三個值:
五、數(shù)組復(fù)制
$@:每個參數(shù)是一個獨(dú)立的串,建議使用;
$*:所有元素當(dāng)做一個串。
實例:復(fù)制一個數(shù)組中下標(biāo)為偶數(shù)的元素至新數(shù)組中:
六、從數(shù)組中刪除元素
格式:unset 數(shù)組名[下標(biāo)]
七、綜合實例
生成10個隨機(jī)數(shù),并對這10個隨機(jī)數(shù)進(jìn)行排序。
相關(guān)文章
shell自定義函數(shù)及參數(shù)調(diào)用解析
與其它的腳本語言一樣,bash同樣支持函數(shù)。本文為大家介紹在bash中定義與使用函數(shù)的方法,有需要的朋友可以參考下2013-02-02shell腳本執(zhí)行命令自動填充密碼(自動輸入密碼)
這篇文章主要介紹了shell?執(zhí)行命令自動填充密碼,文中結(jié)合實例代碼通過三種方式講解了Shell?腳本自動輸入密碼的方法,需要的朋友可以參考下2023-02-02一天一個shell命令 linux文本操作系列-head,tail命令詳解
這篇文章主要介紹了一天一個shell命令 linux文本操作系列-head,tail命令詳解,需要的朋友可以參考下2016-06-06