shell 陣列使用簡介

Pyerlife發表於2017-12-04

陣列簡介

bash 只提供一維陣列,並且沒有限定陣列的大小。類似與C語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標。下標可以是整數或算術表示式,其值應大於或等於 0。使用者可以使用賦值語句對陣列變數賦值。

陣列賦值

  • 下標賦值
$ students[0]=Jack
$ students[1]=Alex
$ students[2]=Amy

也可以使用declare顯式宣告一個陣列:

$ declare -a 陣列名
  • 直接賦值
$ students=(Jack Alex Amy)
或
$ declare -a studentds=(Jack Alex Amy)
  • 命令賦值
    命令的輸出格式如下
$ ls
Desktop   Downloads  Pictures  Templates  virtualenv  
$ arr=($(ls))
  • 字典賦值
    可以通過declare -A命令宣告字典
$ declare -A dict=([key1]=val1 [key2]=val2)

訪問陣列

建立陣列
$ students=(Jack Alex Amy)
  • 通過下標訪問
$ echo ${students[0]}
Jack
$ echo ${students[1]}
Alex
$ echo ${students[2]}
Amy
  • 列出所有元素
$ echo ${students[@]}
Jack Alex Amy
或
$ echo ${students[*]}
Jack Alex Amy

@ 符號與 * 符號均可以列出所有元素

陣列的其它操作

  • 獲取陣列長度
$ echo ${#students[@]}
3
  • 列印陣列下標
$ echo ${!students[@]}
0 1 2

也可以列印字典的key 值

$ declare -A dict=([key1]=val1 [key2]=val2)
$ echo ${!dict[@]}
key2 key1
  • 刪除陣列
$ unset 陣列名

相關文章