標籤:shell編程 數組
q1.數組
我們知道,變數就是記憶體裡的儲存空間,每個變數只可以儲存一個資料,進行一次性的賦值操作,那麼遇到一些需要連續儲存並讀取的任務時,如果還是依靠變數進行多次儲存,既不會保證記憶體空間的連續性,也大大降低了CPU的效率,這時就需要數組這一類型的變數出馬了!
陣列變數:
數組簡單來說就是存放一個或多個元素的連續的記憶體空間,相當於多個變數的集合;
數組的索引有以下方式:
1.數字索引。稱為索引數組 Index ARRAY;
0,1,2,3....
2.名稱(字串): 稱為關聯陣列 Related ARRAY;
bash4.0以上的版本才支援
數組分為兩種:稠密數組和稀疏數組
稠密數組:索引編號必須連續,類似於連續函數依次排序,沒有斷點;
稀疏數組:索引編號可以不連續,bash數組就屬於稀疏數組;
聲明數組的方法:
1.之前說到的declare命令,可以聲明變數。
-i NAME 聲明整型變數
-x NAME 聲明環境變數
同樣,用它也可以聲明陣列變數
-a:聲明索引數組(if supported)
-A:聲明關聯陣列(if supported)
2.直接聲明數組
直接為數組賦值:
ARRAY_NAME=("value1" "value2" ...) 稠密數組
ARRAY_NAME=([0]="value1" [5]="value2" ...) 稀疏數組
3.定義數組的元素而建立數組
ARRAY_NAME[0]=value1
ARRAY_NAME[1]=value2
...
以下介紹對數組的操作:
1.引用數組的元素:
引用數組元素的方式:${ARRAY_NAME[INDEX]}
注意:如果不給出索引編號index,則表示引用數組的第一個元素
引用整個數組所有元素:${ARRAY_NAME[*/@]}
引用數組的索引:${!ARRAY_NAME[*/@]}
2.查看數組的長度:數組中有效元素的個數:
${#ARRAY_NAME[*/@]}
3.數組切片:
${ARRAY_NAME:offset}顯示包括offset數字所表示的索引位置及以後的所有元素
4.追加元素:
1).稠密數組:
ARRAY_NAME[${#ARRAY_NAME[*]}]=valuex
2).稀疏數組
ARRAY_NAME[INDEX]=valuex 這裡的index必須為未被使用的數組元素索引編號;
5.撤銷數組
unset ARRAY_NAME
6.刪除數組的元素
unset ARRAY_NAME[INDEX]
關於數組簡單的記到這裡,數組方便我們對大量資料的儲存,讀取等操作,用處是大大的
shell指令碼基礎--數組