好程式設計師大資料分享Shell中陣列講解
好程式設計師大資料分享Shell中陣列講解,陣列是Shell中非常重要的組成部分,它藉助索引將多個獨立的資料儲存為一個集合。陣列分為普通陣列和關聯陣列,普通陣列只能使用整數作為陣列索引,而關聯陣列可以使用字串作為陣列索引。
陣列的定義
陣列使用一對圓括號表示,陣列元素之間用空格符號分割,具體如下所示:
array1=(1 2 3)
array2=("xiaoqian" "xiaofeng")
此外,陣列還可以定義為一組索引-值的形式,具體如下所示:
array3[0]=1
array3[1]=2
array3[4]=3
注意,索引值可以不連續,而且範圍沒有限制。
以上是普通陣列的定義,關聯陣列在定義前首先需要使用宣告語句進行宣告,具體如下所示:
declare -A array4
array4=([xiaoqian]=18 [xiaofeng]=19)
declare -A array5
array5[xiaoqian]=18
array5[xiaofeng]=20
陣列的操作
陣列定義完成後,就可以對其進行一些操作,具體如下所示:
1. 獲取陣列長度
echo ${#array1[*]} #輸出3
echo ${#array4[@]} #輸出2
上述2種方法都可以獲取陣列的長度,與獲取字串長度的方法類似。此外,獲取陣列中單個元素的長度可以使用如下方法:
echo ${#array2[0]} # 輸出8
echo ${#array5[xiaoqian]} # 輸出2
2. 獲取陣列元素值
echo ${array1[0]} # 輸出1
echo ${array4[xiaoqian]} # 輸出18
上述語句是獲取陣列中單個元素值,若需要獲取陣列中所有元素值,可以使用@或者*符號,具體如下所示:
echo ${array1[*]} # 輸出1 2 3
echo ${array4[@]} # 輸出19 18
3. 獲取陣列索引
echo ${!array1[*]} # 輸出0 1 2
echo ${!array4[@]} # 輸出xiaofeng xiaoqian
上述2種方法都可以獲取陣