设为首页 收藏本站
查看: 683|回复: 0

shell脚本基础--数组

[复制链接]

尚未签到

发表于 2018-8-24 13:01:36 | 显示全部楼层 |阅读模式
  q1.数组
  我们知道,变量就是内存里的存储空间,每个变量只可以存储一个数据,进行一次性的赋值操作,那么遇到一些需要连续存储并读取的任务时,如果还是依靠变量进行多次存储,既不会保证内存空间的连续性,也大大降低了CPU的效率,这时就需要数组这一类型的变量出马了!
  数组变量:
  数组简单来说就是存放一个或多个元素的连续的内存空间,相当于多个变量的集合;
  数组的索引有以下方式:
  1.数字索引。称为索引数组 Index ARRAY;
  0,1,2,3....

  2.名称(字符串): 称为关联数组>  bash4.0以上的版本才支持
  数组分为两种:稠密数组和稀疏数组
  稠密数组:索引编号必须连续,类似于连续函数依次排序,没有断点;
  稀疏数组:索引编号可以不连续,bash数组就属于稀疏数组;
  声明数组的方法:
  1.之前说到的declare命令,可以声明变量。
  -i NAME 声明整型变量
  -x NAME 声明环境变量
  同样,用它也可以声明数组变量
  -a:声明索引数组(if supported)
  -A:声明关联数组(if supported)
  2.直接声明数组
  直接为数组赋值:
  ARRAY_NAME=("value1" "value2" ...)  稠密数组
  ARRAY_NAME=([0]="value1" [5]="value2" ...)  稀疏数组
  3.定义数组的元素而创建数组
  ARRAY_NAME[0]=value1
  ARRAY_NAME[1]=value2
  ...
  以下介绍对数组的操作:
  1.引用数组的元素:
  引用数组元素的方式:${ARRAY_NAME[INDEX]}
  注意:如果不给出索引编号index,则表示引用数组的第一个元素
  引用整个数组所有元素:${ARRAY_NAME[*/@]}
  引用数组的索引:${!ARRAY_NAME[*/@]}
  2.查看数组的长度:数组中有效元素的个数:
  ${#ARRAY_NAME[*/@]}
  3.数组切片:
  ${ARRAY_NAME:offset}显示包括offset数字所表示的索引位置及以后的所有元素
  4.追加元素:
  1).稠密数组:
  ARRAY_NAME[${#ARRAY_NAME
  • }]=valuex
      2).稀疏数组
      ARRAY_NAME[INDEX]=valuex  这里的index必须为未被使用的数组元素索引编号;
      5.撤销数组
      unset ARRAY_NAME
      6.删除数组的元素
      unset ARRAY_NAME[INDEX]
      关于数组简单的记到这里,数组方便我们对大量数据的存储,读取等操作,用处是大大的


  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555996-1-1.html 上篇帖子: shell循环和函数引用 下篇帖子: shell常用语法案例
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表