Shell函数扩展之数组

Shell函数扩展之数组

一、shell数组概述

和其他编程语言一样,Shell 也支持数组。数组(Array)是若干数据的集合,其中的每一份数据都称为元素(Element)。
Shell 并且没有限制数组的大小,Shell 数组元素的下标也是从0开始计数。
获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式;当然,下标必须大于等于 0。

二、数组格式

基本格式
数组名=(value0 value1 value2...)(最常用)
例如:ABC=(11 22 33...)

基本格式
数组名=([0]=value [1]=value [2]=value...)
例如:ABC=([0]=11 [1]=22 [2]=33...)

基本格式
列表名=“value0 value1 value2”
数组名=($列表名)
例如:
AAA=“11 22 33...”
ABC=($列表名)

基本格式
数组名[0]=“value”
数组名[1]=“value”
数组名[2]=“value”
例如:
AAA[0]=“11”
AAA[1]=“22”
AAA[2]=“33”

三、具体操作

1、查看

获取数组长度:
${#数组名[@/*]}

读取某下标赋值:
${数组名[下标]}

获取数组元素:
${数组名[*]}
${数组名[@]}
${a[索引]}

2、切片

[root@localhost ~]# a=(1 2 3 4 5 6 7)
[root@localhost ~]# echo ${a[*]:1:4} //从第二个开始取,取4个
2 3 4 5

3、替换

${数组名[@]/x/y}     最小匹配替换,每个元素只替换一次
${数组名[@]//x/y}    最大匹配替换,每个元素可替换多次
${数组名[@]/x/}      最小匹配删除,只删除一个符合规定的元素
${数组名[@]//x/}     最大匹配删除,可删除多个符合规定的元素

4、删除

删除数组,删除数组元素:
unset 数组名[索引]      
unset 数组名

[root@localhost ~]# a=(A B C D E F)
[root@localhost ~]# unset a[2]          # 删除索引为2的元素
[root@localhost ~]# echo ${a[@]}        # 显示删除后的元素
A B D E F

5、遍历

#!/bin/bash 
a=(1 2 3 4 5)
for i in ${a[*]}
do
echo $i 
done

或
#!/bin/bash 
a=(1 2 3 4 5)
for ((i=0;i<${#a[*]};i++))
do
echo ${a[$i]}
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值