5.shell脚本基础笔记-shell变量之数组
hi,我是温新,一名PHPer
坚持很难,很多人走着走着就不见了...
数组是一种数据结构,可以将多个元素按照顺序保存,使用时根据索引访问指定元素。数组索引下标从0开始。
定义数组的方式
declare -a定义
# 方式1
declare -a arr1
arr[0]=a
arr[1]=b
# 方式2
declare -a arr1=(a b)
() 直接定义
arr2=(a b c d)
带下标的定义
arr3[0]=a
arr3[1]=b
使用数组
语法:${数组名[索引]}
根据下标获取数组元素
fruits=(apple grape ornage peach)
# 获取数组元素
echo ${fruits[1]}
不指定索引则获取下标为0的元素
echo ${fruits}
获取数组中元素个数
语法:${#数组名[@]}
echo ${#fruits[@]}
数组相关操作
使用索引进行赋值
语法:[索引]=值
在shell数组中,元素下标可以是不连续的,空出的下标元素值为空,如下案例:
colors=(yellow green [3]=blue [5]=gray black)
echo ${colors[3]}
echo ${colors[4]} # 空
获取所有数组元素值
使用*
或@
作为索引访问数组可以获取数组中所有元素的值。
echo "${colors[@]}"
获取所有数组元素索引
语法:${!数组名[*]}
或${!数组名[@]}
echo "${!colors[@]}"
修改元素的值
语法:数组名[索引]=新值
colors[3]=pink
添加数组元素
语法:${数组名[@]}
,组合使用可以在原数组的头部或尾部添加新的元素,并创建新的数组元素。
1)在数组 头部 添加新元素
arr5=(e f g h)
# 数组头部添加元素
# 注意一定要使用双引号
arr5=(a b "${arr5[@]}")
2)在数组 尾部 添加元素
arr5=("${arr5[@]}" z y)
# 或
arr5+=(zz yy)
3)获取所有数组元素
echo "${arr5[@]}"
赋值数组
arr6=("${arr5[@]}")
删除数组元素
命令:unset
unset arr5[0]
获取部分数组元素
语法:${数组名:数值:长度}
colors=(gray black green orange pink)
echo ${colors[@]:1:2}
关联数组
语法:declare -A
。关联数组必须使用此语法。
创建关联数组
declare -A users=([id]=5 [name]=lucy)
访问关联数组元素
echo ${users[name]}
获取关联数组元素个数
echo ${#users[@]}
更新数组元素值
users[name]=hanny
获取所有数组元素
echo "${users[@]}"
获取关联数组中的键
echo "${!users[@]}"
删除数组元素
unset users[id]
请登录后再评论