shell脚本--数组

数组

shell数组的定义

1.数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组)

2.数组元素的下标由 0 开始。

3.Shell 数组用括号来表示,元素用"空格"符号分割开

4.在shell语句中,使用、遍历数组的时候,数组格式要写成 ${arr[@]} 或 ${arr[*]}

数组是存放相同类型数据的集合,在内存中开辟了连续的空间,通常配合循环使用

数组的分类:
普通数组:不需要声明直接定义,下标索引只能是整数

关联数组:需要用declare -A 声明 否则系统不识别,索引可以是字符串

数组的定义方式

第一种:直接把要加入数组的元素用小括号括起来,中间用空格分开
num= ( 11 22 33 44 )

${ #num} 显示字符串长度
数组名=(value0 value1 value2)
第二种:精确的给每一个下标索引定义一个值加入数组,索引数字可以不连续
num= ( [ 0 ]=55 [ 1 ]=66 [ 2 ]=77 [ 4 ]=88)

数组名=( [ 0 ]=value [ 1 ]=value [ 2 ]=value. . . )
第三种:先把要加入数组的元素全部先赋值给一个变量,然后引用这个变量加入到数组。
list=“11 12 13 14”

num=( l i s t ) 列表名 = " v a l u e 0 v a l u e 1 v a l u e 2... " 数组名 = ( list) 列表名="value0 value1 value2..." 数组名=( list)列表名="value0value1value2..."数组名=(列表名)
第四种:根据下标定义
数组名[0]=“11”
数组名[1]=“22”
数组名[2]=“33”

数组名[0]=“value”
数组名[1]=“value”
数组名[2]=“value”

数组常见用法

1.获取数组的长度
[root@localhost ~]# ar_number=(10 20 30 40 50)
[root@localhost ~]# ar_length=${#ar_number[*]}
[root@localhost ~]# echo $ar_length

[root@localhost ~]# ar_number=(10 20 30 40 50)
[root@localhost ~]# ar_length=${#ar_number[@]}
[root@localhost ~]# echo $ar_length

2.数组元素遍历
[root@localhost ~]# vim kkkk.sh

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

[root@localhost ~]# sh kkkk.sh

3.元素切片
[root@localhost ~]# arr=(1 2 3 4 5 6)
[root@localhost ~]# echo ${arr[]}
1 2 3 4 5 6
[root@localhost ~]# echo ${arr[
]:2:3}
3 4 5
[root@localhost ~]# echo ${arr[]:2:4}
3 4 5 6
[root@localhost ~]# echo ${arr[
]:0:5}
1 2 3 4 5

4.数组元素替换
临时替换

[root@localhost ~]# arr=(1 2 3 4 56 7 8)
[root@localhost ~]# echo ${arr[]}
1 2 3 4 56 7 8
[root@localhost ~]# echo ${arr[
]/56/5 6}
1 2 3 4 5 6 7 8
[root@localhost ~]# echo ${arr[*]}
1 2 3 4 56 7 8

永久替换
[root@localhost ~]# arr=(1 2 3 4 56 7 8)
[root@localhost ~]# echo KaTeX parse error: Expected 'EOF', got '#' at position 43: …ot@localhost ~]#̲ arr=({arr[@]/56/5 6})
[root@localhost ~]# echo ${arr[@]}
1 2 3 4 5 6 7 8

5.数组删除
删除整个数组
[root@localhost ~]# arr=(1 2 3 4 56 7 8)
[root@localhost ~]# echo ${arr[@]}
1 2 3 4 56 7 8
[root@localhost ~]# unset arr
[root@localhost ~]# echo ${arr[@]}

[root@localhost ~]#

删除数组中的元素
[root@localhost ~]# arr=(1 2 3 4 5 6 7 8)
[root@localhost ~]# echo ${arr[@]}
1 2 3 4 5 6 7 8
[root@localhost ~]# unset arr[7]
[root@localhost ~]# echo ${arr[@]}
1 2 3 4 5 6 7

总结

数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值