变量:存储单个元素的内存空间
数组:存储多个元素的连续的内存空间
数组索引:编号从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
原文地址:http://qiuyue.blog.51cto.com/1246073/1953987