快速业务通道

linux shell 数组建立及使用技巧

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-02

参考其他老鸟的总结,小结一下array

数组申明

  1. [root@localhost ~]# ARRAY=(a b c d)
  2. #一对括表示是数组,数组元素用“空格“符号分割开.
  1. [root@localhost ~]# echo $ARRAY
  2. a
  3. #数组也是指针形似,数组名称相当于一个指针,指向第一个数组元素,
  4. #echo会显示出ARRAY[0]的值

数组赋值:

  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. [root@localhost ~]# echo ${ARRAY[0]}
  7. a
  8. [root@localhost ~]# echo ${ARRAY[1]}
  9. b
  10. [root@localhost ~]# echo ${ARRAY[3]}
  11. d
  12. #注意下表从0开始;读取时候需用 ${} 将数组元素括起来.
  13. [root@localhost ~]#ARRAY=(a b c d)
  14. [root@localhost ~]# echo ${ARRAY[*]}
  15. a b c d
  16. [root@localhost ~]# echo ${#ARRAY[*]}
  17. 4
  18. [root@localhost ~]#
  19. [root@localhost ~]# A[0]=9 [root@localhost ~]# A[10]=1
  20. [root@localhost ~]# echo ${A[*]}
  21. 9 1
  22. [root@localhost ~]# echo ${#A[*]}
  23. 2
  24. [root@localhost ~]# A[3]=5
  25. [root@localhost ~]# echo ${A[*]}
  26. 9 5 1
  27. [root@localhost ~]# echo ${#A[*]}
  28. 3
  29. # 如上所示,${数组名[下标]} 下标是:*或者@ 可得到整个数组内容
  30. #并且 ${#数组名[*]} 可返回整个数组非空值的个数






数组删除:

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

数组特殊用法:

  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. #
  10. [root@localhost ~]# next=(${ARRAY[*]:2:4})
  11. [root@localhost ~]# echo ${next[*]}
  12. c d e
  13. #如上,分片后的部分数值赋给了新数组next
  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. #如上,可以进行数组中值的替换.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号