且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

bash数组

更新时间:2022-09-14 22:09:34

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

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

数组索引:编号从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

bash数组

  • 数组元素引用:

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

    所有元素引用:

    ${ARRAY_NAME[@]}

    ${ARRAY_NAME[*]}

bash数组

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

     ${#ARRAY_NAME[@]}

     ${#ARRAY_NAME[*]}

bash数组

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

bash数组

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

bash数组

  • 数组元素切片:

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

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

bash数组


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

bash数组

bash数组


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

bash数组

bash数组




      本文转自Marion0728  51CTO博客,原文链接:http://blog.51cto.com/qiuyue/1953987,如需转载请自行联系原作者