文章目录
数组中可以存放多个值。bash shell只支持一维数组,初始化无序定义数组大小。数组元素下标由0开始。
1、基本数组
(1)数组的定义
在shell中,使用括号()
来表示数组,数组元素之间用空格来分割
方法1:
数组名称=(元素1 元素2 元素3 ....)
方法2:
数组名称[0]=元素0
数组名称[1]=元素1
数组名称[2]=元素2
数组名称[3]=元素3
(3)获取数组元素
${数组名称[索引]}
使用@
或*
获取数组中的所有元素
${数组名称[*]}
${数组名称[@]}
(4)统计数组元素的个数
${#数组名[@]}
${#数组名[*]}
(5)获取数组元素的索引
${!数组名[*]}
(6)获取数组下标从n开始的所有元素
${数组名[@]:n}
(7)从数组下标n开始,获取m个元素
${数组名[@]:n:m}
示例
#!/bin/bash
arr=(a b cc dd)
arr[4]="ee e"
arr[5]=f
arr[6]=g
echo "数组第3个元素为:${arr[2]}"
echo "数组的全部元素为:${arr[*]}"
echo "数组中元素个数为:${#arr[*]}"
echo "获取数组元素索引:${!arr[*]}"
echo "获取数组下表从2开始的所有元素:${arr[*]:2}"
echo "获取数组下面从1开始的3个元素:${arr[*]:1:3}"
2、关联数组
关联数组使用字符串作为下标,而不是整数。关联数组也称“键值对(key-value)”数组,key为下标,value为元素值。
(1)关联数组的声明
方式: declare -A 数组名
(2)关联数组赋值
一次赋一个值
数组名[索引]=值
一次赋多个值
数组名=([索引1]=值1 [索引2]=值2 [索引3]=值3)
(3)访问关联数组元素
echo ${数组名[key]} #访问“key”对应的value值
#获取关联数组的所有元素值
echo ${数组名[@]}
echo ${数组名[*]}
#获取关联数组的所有下标值
echo ${!数组名[@]}
echo ${!数组名[*]}
(4)获取关联数组元素的个数
echo ${#数组名[@]}
echo ${#数组名[*]}
示例:
#!/bin/bash
declare -A arry1 #声明关联数组arry1
arry1=([name]="zhangsan" [sex]=nan [age]=17)
arry1[addr]="China"
arry1[email]="xxx@mail.com"
echo "name对应的值为:${arry1[name]}"
echo "email对应的值为:${arry1[email]}"
echo "该关联数组一共有:${#arry1[*]}个元素"
echo "数组全部元素为:${arry1[*]}"
echo "数组的所有下标为:${!arry1[*]}"