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. #如上,可以进行数组中值的替换。

 

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