next up previous contents
Next: 字典陣列 Up: Shell 變數使用 Previous: 變數宣告 declare   Contents

陣列

  1. 以小括號 () 指定元素給陣列變數 arr。
    [dywang@dywmac zzz]$ unset arr
    [dywang@dywmac zzz]$ arr=(A B C)
    
  2. ${arr[@]} 取出陣列所有元素。
    [dywang@dywmac zzz]$ echo ${arr[@]}
    A B C
    
  3. ${#arr[@]} 取出陣列 arr 的元素個數。
    [dywang@dywmac zzz]$ echo ${#arr[@]}
    3
    
  4. 變更陣列 arr 第 3 個元素為 R
    [dywang@dywmac zzz]$ arr=(A B C)
    [dywang@dywmac zzz]$ arr[2]=R
    [dywang@dywmac zzz]$ echo ${arr[@]}
    A B R
    
  5. 陣列 arr 只有 3 個元素,設定第 4 個元素為 D,會增加一個元素。
    [dywang@dywmac zzz]$ arr[3]=D
    [dywang@dywmac zzz]$ echo ${arr[@]}
    A B R D
    
  6. 現在陣列 arr 有 4 個元素,設定第 7 個元素為 Y,元素個數為 5,但第 5 及 6 個元素沒設定。
    [dywang@dywmac zzz]$ arr[6]=Y
    [dywang@dywmac zzz]$ echo ${arr[@]}
    A B R D Y
    [dywang@dywmac zzz]$ echo ${#arr[@]}
    5
    [dywang@dywmac zzz]$ echo ${arr[4]}
    
    [dywang@dywmac zzz]$ echo ${arr[6]}
    Y
    
  7. 陣列後面累加一個元素
    [dywang@dywIssd zzz]$ arr=(1 12 13 14)
    [dywang@dywIssd zzz]$ arr1=(${arr[@]} 15)
    [dywang@dywIssd zzz]$ echo ${arr1[@]}
    1 12 13 14 15
    
  8. 陣列前面累加一個元素
    [dywang@dywIssd zzz]$ arr=(1 12 13 14)
    [dywang@dywIssd zzz]$ arr1=(0 ${arr[@]})
    [dywang@dywIssd zzz]$ echo ${arr1[@]}
    0 1 12 13 14
    
  9. 從陣列 arr 第 N 個元素開始取 M 個元素
    arr1=(${arr[@]:N-1:M})
    
  10. 例如:從陣列 arr 第 3 個元素取 5 個元素
    [dywang@dywIssd zzz]$ arr=(1 12 13 14 15 16 17)
    [dywang@dywIssd zzz]$ arr1=(${arr[@]:2:5})
    [dywang@dywIssd zzz]$ echo ${arr1[@]}
    13 14 15 16 17
    
  11. 例如:從陣列 arr 第 4 個元素取到最後一個元素 (M 沒設定表示取到最後一個)
    [dywang@dywIssd zzz]$ arr=(1 12 13 14 15 16 17)
    [dywang@dywIssd zzz]$ arr1=(${arr[@]:3})
    [dywang@dywIssd zzz]$ echo ${arr1[@]}
    14 15 16 17
    
  12. 例如:從陣列 arr 第 1 個元素取到倒數第二個元素
    [dywang@dywIssd zzz]$ arr=(1 12 13 14 15 16 17)
    [dywang@dywIssd zzz]$ arr1=(${arr[@]:0:$((${#arr[@]}-1))})
    [dywang@dywIssd zzz]$ echo ${arr1[@]}
    1 12 13 14 15 16
    



2019-06-17