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

wKiom1mGsSbx1GhJAACCuaJRZ6k607.jpg

  • 数组元素引用:

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

    所有元素引用:

    ${ARRAY_NAME[@]}

    ${ARRAY_NAME[*]}

wKioL1mGsVCjauMBAABh2GxxoZE312.jpg

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

     ${#ARRAY_NAME[@]}

     ${#ARRAY_NAME[*]}

wKiom1mGsXWiFdYSAABZ08O5_7k877.jpg

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

wKiom1mGsZOTIDarAAD4C6fhQ5I044.jpg

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

wKiom1mGsbfSIny-AAA4b_ksq_8492.jpg

  • 数组元素切片:

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

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

wKiom1mGseLzw--BAACESigAO7k134.jpg


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

wKioL1mGsgehVXxCAABG3ltPnGA549.jpg

wKioL1mGsgfQyOKPAACHMw2hntU034.jpg


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

wKioL1mGskHjp6wUAABZOcFhfnY267.jpg

wKiom1mGskLxkqAUAACsSYOU02Q148.jpg




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







相关文章
|
7月前
|
存储 Shell 索引
如何在Bash中使用For循环和数组?
如何在Bash中使用For循环和数组?
121 0
|
11月前
|
运维 Shell
善用chatGPT学习 | bash脚本如何判断字符串在数组中
善用chatGPT学习 | bash脚本如何判断字符串在数组中
150 0
|
11月前
|
Shell 数据库 数据安全/隐私保护
bash 只读/整形/数组 类型操作
bash 只读/整形/数组 类型操作
73 0
|
Shell Linux
bash shell 中数组使用举例
bash shell 中数组使用举例 一 背景 让我们先来看一个 shell 脚本的执行过程及结果: [gysl@gysl-DevOps ~]$ sh array.sh N2 N3 N4 The elements of this array 2-4 are: N2 N3 N4 N1 is in array.
1346 0
|
存储 Shell 索引