数组
声明:
declare -a ARRAY_NAME
declare -A ARRAY_NAME 关联数组
赋值
ARRAY_NAME[INDEX]=VALUE
ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)
ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)
read -a ARRAY
举例: 添加组;names=('a' "b" c d) --意思是加不加引号都行,建议加
添加单个;names[4]=e
添加关联数组:name3=([name1]=wang [name2]=zhao [name3]=sun)
[root@centos7 test2]#read -a ARR
z x c
[root@centos7 test2]#echo ${ARR[*]}
z x c
显示全部数组
declare -a
引用数组元素
${ARRAY_NAME[INDEX]}
注意:省略[INDEX]表示引用下标为0的元素
引用数组所有元素
${ARRAY_NAME[*]}
${ARRAY_NAME[@]}
数组的长度(数组中元素的个数)
${#ARRAY_NAME[*]}
${#ARRAY_NAME[@]}
举例:统计数量 echo ${#names[*]}
[root@centos7 test2]#echo ${names[*]}
a b c d e
[root@centos7 test2]#names[${#names[*]}]=f
[root@centos7 test2]#echo ${names[@]}
a b c d e f
删除数组
unset ARRAY[INDEX]
举例:
[root@centos7 test2]#unset names[2]
[root@centos7 test2]#echo ${names[@]}
a b d e f
删除整个数组
unset ARRAY
切片
${ARRAY[@]:offset:number}
offset 要跳过的元素个数
number 要取出的元素个数
[root@centos7 ~]#echo ${names[@]:1:2}
b c
取偏移量之后的所有元素
${ARRAY[@]:offset}
字符切片
${name:左开始调过几个,共几个/右开始跳几个}
name=magedu
[root@centos7 ~]#echo ${name:2:3}
ged
[root@centos7 ~]#echo ${name:2:-3}
g