首页 > 代码库 > bash数组

bash数组

变量:存储单个元素的内存空间

数组:存储多个元素的连续的内存空间

数组索引:编号从0开始,属于数值索引,索引也可支持使用自定义格式,而不仅仅是数值格式

bash的数组支持稀疏格式

数组常用操作:

  • 数组声明:

    普通数组:declare -a ARRAY_NAME

    关联数组:declare -A ARRAY_NAME

  • 数组元素赋值:

    一次只赋值一个元素:ARRAY_NAME[INDEX]=VALUE,如:weekdays[0]="Sunday"

    一次赋值全部元素:

            ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)

            ARRAY_NAME=([index_name1]=‘val1‘ [index_name2]=‘val2‘ ...)

      只赋值特定元素:

            ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)

            read -a ARRAY

技术分享

  • 数组元素引用:

    单个元素引用:${ARRAY_NAME[INDEX]},省略[INDEX]时表示引用下标为0的元素

    所有元素引用:

    ${ARRAY_NAME[@]}

    ${ARRAY_NAME[*]}

技术分享

  • 数组长度(数组中元素个数):

     ${#ARRAY_NAME[@]}

     ${#ARRAY_NAME[*]}

技术分享

  • 数组元素追加:ARRAY_NAME[${#ARRAY_NAME[*]}]

技术分享

  • 数组元素删除:unset ARRAY_NAME[INDEX]

技术分享

  • 数组元素切片:

    ${ARRAY_NAME[@]:offset:number}offset:要跳过的元素个数,number:要取出的元素个数

    取偏移量之后的所有元素:${ARRAY_NAME[@]:offset}

技术分享


数组使用示例1:写一个脚本,生成5个随机数保存于数组中,并找出其最大值

技术分享

技术分享


数组使用示例2:写一个脚本,脚本中定义一个数组,数组中的元素是/var/log目录下所有以.log结尾的文件,统计其下标为偶数的文件中的行数之和

技术分享

技术分享


本文出自 “天道酬勤” 博客,请务必保留此出处http://qiuyue.blog.51cto.com/1246073/1953987

bash数组