1. 程式人生 > >好程式設計師大資料分享Shell中陣列講解

好程式設計師大資料分享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種方法都可以獲取陣