好程式設計師大資料分享Shell中陣列講解

好程式設計師IT發表於2019-05-28

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2645963/,如需轉載,請註明出處,否則將追究法律責任。

相關文章