linux shell 數組建立及使用技巧

 

參考其他老鳥的總結,小結一下array

數組申明

  1. [root@localhost ~]# ARRAY=(a b c d) 
  2.  #一對括表示是數組,數組元素用“空格“符號分割開。
  1. [root@localhost ~]# echo $ARRAY 
  2. #數組也是指針形似,數組名稱相當於一個指針,指向第一個數組元素,
  3. #所以echo會顯示出ARRAY[0]的值
  4.  

數組賦值:

  1. [root@localhost ~]# A[0]=9  
  2. [root@localhost ~]# A[10]=1  
  3. [root@localhost ~]# echo ${A[0]}  
  4. 9  
  5. #賦值時可以單個賦值,如上
數組讀取:
  1. [root@localhost ~]# echo $ARRAY[1]  //錯誤形式示例 
  2.  a[1]  
  3. [root@localhost ~]# echo $ARRAY[2] //錯誤形式示例 
  4.  a[2]  
  5. #如上面兩種形式書寫,echo會先顯示$ARRAY的值,然後按照字符串顯示[n],並且拼接起來。達不到取出值的目的. 
  6.  
  7. [root@localhost ~]# echo ${ARRAY[0]}  
  8. a  
  9. [root@localhost ~]# echo ${ARRAY[1]}  
  10. b  
  11. [root@localhost ~]# echo ${ARRAY[3]}  
  12. d  
  13. #注意下表從0開始;讀取時候需用 ${} 將數組元素括起來. 
  14. [root@localhost ~]#ARRAY=(a b c d) 
  15. [root@localhost ~]# echo ${ARRAY[*]} 
  16. a b c d 
  17. [root@localhost ~]# echo ${#ARRAY[*]} 
  18.  
  19. [root@localhost ~]# 
  20. [root@localhost ~]# A[0]=9 [root@localhost ~]# A[10]=1 
  21. [root@localhost ~]# echo ${A[*]} 
  22. 9 1 
  23. [root@localhost ~]# echo ${#A[*]} 
  24. [root@localhost ~]# A[3]=5 
  25. [root@localhost ~]# echo ${A[*]} 
  26. 9 5 1 
  27. [root@localhost ~]# echo ${#A[*]} 
  28. # 如上所示,${數組名[下標]} 下標是:*或者@ 可得到整個數組內容 
  29. #並且 ${#數組名[*]}  可返回整個數組非空值的個數 


數組刪除:

  1. [root@localhost ~]# unset A 
  2. [root@localhost ~]# echo ${A[*]} 
  3. [root@localhost ~]# echo ${#A[*]} 

數組特殊用法:

  1. ----分片:
  2. [root@localhost ~]# echo ${ARRAY[*]} 
  3. a b c d e 
  4. [root@localhost ~]# echo ${ARRAY[*]:0:3} 
  5. a b c 
  6. [root@localhost ~]# echo ${ARRAY[*]:2:4} 
  7. c d e 
  8. # 如上,在數組中可以用:n進行數組的範圍分片,顯示一個範圍的數值
  9. [root@localhost ~]# next=(${ARRAY[*]:2:4}) 
  10. [root@localhost ~]# echo ${next[*]} 
  11. c d e 
  12. #如上,分片後的部分數值賦給了新數組next
  13.  
  14. ----替換:
  15. [root@localhost ~]# echo ${ARRAY[*]}
    a b c d e
    [root@localhost ~]# echo ${ARRAY[*]/a/A}
    A b c d e
    [root@localhost ~]# echo ${ARRAY[*]/b/B}
    a B c d e
    [root@localhost ~]# echo ${ARRAY[*]/b/100}
    a 100 c d e
    [root@localhost ~]#
  16. [root@localhost ~]# echo ${y[*]}
    1 2 3 4 5
    [root@localhost ~]# echo ${y[*]/2/200}
    1 200 3 4 5
  17. #如上,可以進行數組中值的替換。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章