Linux:shell脚本:基础使用(9)《数组》

数组就是一组数据类型相同集合


定义

数组名=(元素内容…………)

如果没有元素内容就是空 

arr1=()
# 定义了一个空数组
arr2=(1 2 3 4 5 6 )
# 定义了一个元素是整形的数组
arr3=("hello" "world" "你好" "世界")
# 定义了一个元素为字符串的数组

输出数组内容

输出数组单个内容可以通过下标,比如arr2

arr2 :1 2 3 4 5 6

下标:0 1 2 3 4 5 

下标是从0开始的

[root@localhost ~]# echo $arr1

[root@localhost ~]# 

# 这个没有因为我定义arr1是一个空数组

[root@localhost ~]# echo $arr2
1
[root@localhost ~]# 

# 直接使用数组名只输出了第一个下标为0的

[root@localhost ~]# echo ${arr2[1]}
2
[root@localhost ~]# echo ${arr2[2]}
3
[root@localhost ~]# echo ${arr2[3]}
4
[root@localhost ~]# echo ${arr2[4]}
5
[root@localhost ~]# echo ${arr2[5]}
6
[root@localhost ~]# echo ${arr2[*]}
1 2 3 4 5 6
[root@localhost ~]#  

# 通过下表进行一个输出arr2

 

[root@localhost ~]# echo ${arr3[0]}
hello
[root@localhost ~]# echo ${arr3[1]}
world
[root@localhost ~]# echo ${arr3[2]}
你好
[root@localhost ~]# echo ${arr3[3]}
世界
[root@localhost ~]# echo ${arr3[4]}



[root@localhost ~]# echo ${arr3[*]}
hello world 你好 世界
[root@localhost ~]# 

 # 通过下标去访问arr3的数组

 


输出数组全部内容

[root@localhost ~]# echo ${arr2[*]}
1 2 3 4 5 6
[root@localhost ~]# echo ${arr3[*]}
hello world 你好 世界 

[root@localhost ~]# for i in ${arr3[*]};do echo $i;done
hello
world
你好
世界

[root@localhost ~]# for i in ${arr2[*]};do echo $i;done
1
2
3
4
5
6
[root@localhost ~]# 

# 可以通过这样去遍历出全部的数组

获取数组的长度

[root@localhost ~]# echo ${#arr2[*]}
6
[root@localhost ~]# echo ${#arr3[*]}
4
[root@localhost ~]# 

# 这样就可以统计出数组内有多少个元素

修改添加替换数组元素

数组赋值格式:数组名[下标]=,如果下标不存在,则新增数组元素; 下标已有,则覆盖值。

[root@localhost ~]# echo ${arr2[*]}
1 2 3 4 5 6
[root@localhost ~]# arr2[1]=2222
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6
[root@localhost ~]# 
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6
[root@localhost ~]# arr2[6]=7777
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]# 

数组分片 

${数组名[*@]:起始位:长度},截取部分数组,返回字符串,中间用空格分隔;将结果使用“()”,则得到新的切片数组。

[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]# echo ${arr2[*]:0:2}
1 2222
# 意思是从0开始,往后数2个

[root@localhost ~]# echo ${arr2[*]:2:2}
3 4
# 意思是从第2个开始,往后数2个

[root@localhost ~]# echo ${arr2[*]:6:1}
7777
# 从6开始往后数1个,也就是当前的

[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# arr4=$(echo ${arr2[*]:6:1})
[root@localhost ~]# echo $arr4
7777
[root@localhost ~]# 

数组替换元素

[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]# echo ${arr2[*]/2222/2}
1 2 3 4 5 6 7777
[root@localhost ~]# echo ${arr2[*]/7777/7}
1 2222 3 4 5 6 7
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# arr5=$(echo ${arr2[*]/2222/2})
[root@localhost ~]# echo $arr5
1 2 3 4 5 6 7777

数组删除元素

[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]# unset arr2[0]
[root@localhost ~]# echo ${arr2[*]}
2222 3 4 5 6 7777
[root@localhost ~]# 

删除成功

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值