首页 > 代码库 > shell数组的用法
shell数组的用法
变量:存储单个元素的内存空间:
数组(多个连续的内存空间):存储多个元素的连续的内存空间:
数组名:
索引:编号从0开始,属于数值索引;
注意:索引也可支持使用自定义的格式,而不仅仅是数值格式:
bash的数组支持稀疏格式
引用数组中元素:${ARRAY_NAME[INDEX]}
声明数组:
declare -a ARRAY_NAME
declare -A ARRAY_NAME:关联数组:kv
数组元素的赋值:
(1)一次只赋值一个元素:
ARRAY_NAME[INDEX]=VALUE
#weekdays[0]=”Sunday”
#weekdays[4]=”Thursday”
(2)一次赋值全部元素:
ARRAY_NAME=(“VAL1”,”VAL2”,”VAL3”,...)
(3)只赋值特定元素:
ARRAY_NAME=([0]=”VAL1” [3]=”VAL2” ...)
(4)read -a ARRAY
引用数组中的某个元素:
${ARRAY_NAME[INDEX]}
注意:省略[INDEX]表示引用下标为0的元素
显示数组中所有元素:
${ARRAY_NAME[*]},或者${ARRAY_NAME[@]}
统计数组的长度(数组中元素的个数):
${#ARRAY_NAME[*]},${#ARRAY_NAME[@]}
引用数组中的元素:
依次取出数组中所有元素:${ARRAY[@]}或者${ARRAY[*]}
数组切片:
取出数组中指定长度的元素:${ARRAY[@]:offset:number}:也叫做数组切片
offset:要跳过的元素个数
number:要取出的元素个数
例 :#echo ${weekdays[@]:1:2}
取出偏移量之后的所有元素:${ARRAY[@]:offset}
#echo ${weekdays[@]:1}
向数组中追加元素:
ARRAY[${#ARRAY[*]}]
删除数组中的某元素:
unset ARRAY[INDEX]
关联数组:
declare -A ARRAY_NAME
ARRAY_NAME=([index_name]=’val1’ [index_name2=’val2’ ...])
本文出自 “激情燃烧的岁月” 博客,请务必保留此出处http://liuzhengwei521.blog.51cto.com/4855442/1927663
shell数组的用法