Shell数组

1.shell数组

  • shell数组:是若干数据的集合,其中的每一份数据都称为元素
  • shell数组元素的下标也是从0开始计数
  • 获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式;下标必须大于等于0
  • 遗憾的是,常用的Bash shell只支持一维数组,不支持多维数组

2.数组的定义

  • shell中,用小括号( )来表示数组,数组元素之间用空格来分隔
  • 用小括号将变量值括起来赋值给数组变量
  • 每个变量值之间要用空格进行分隔
array1=(1 2 3 4 5)
echo ${array1[*]}		#输出定义数组的所有元素
echo ${array1[@]}		#输出定义数组的所有元素
echo ${array1[0]}	
echo ${array1[1]}
echo ${array1[2]}
  • 例:
    在这里插入图片描述
  • 采用键值对的形式赋值
  • 用小括号将变量值括起来,同时采用键值对的形式赋值
array2=([1]=one [2]=two [3]=three)
echo ${array2[@]}
echo ${#array2[@]}	#输出定义数组的个数
echo ${array2[0]}
echo ${array2[1]}	#输出定义数组的第一个数
  • 例:
    在这里插入图片描述
  • 通过分别定义数组变量的方法来定义
array3[1]=a
array3[2]=b
array3[3]=c
echo ${array3[@]}
echo ${array3[1]}
echo ${array3[2]}
  • 例:
    在这里插入图片描述
  • 动态地定义数组变量
  • 动态地定义数组变量,并使用命令的输出结果作为数组的内容
    在这里插入图片描述

3.数组的打印

  • 打印单个数组元素: ${数组名[下标]} #当未指定数组下标时,下标默认从0开始
  • 打印全部数组内容: 数 组 名 [ @ ] 或 {数组名[@]}或 [@]{数组名[*]}
  • 打印数组元素的个数:KaTeX parse error: Expected '}', got '#' at position 2: {#̲数组名[@]}或{#数组名[*]}

4.数组的赋值

  • 如果下标不存在,则自动添加一个新的元素;如果下标存在,则覆盖原来的值
  • 例:
    在这里插入图片描述

5.数组的删除

  • 因为数组本质上还是变量,因此可以通过 unset 数组[下标] 删除相应的数组元素
  • 删除整个数组:unset 数组
  • 例:
    在这里插入图片描述

6.数组内容的截取和替换

  • 截取:
echo ${数组名[@]:start:length}	#start代表从第几个下标开始截取,length表示截取的长度
  • 例:
    在这里插入图片描述
  • 替换
echo ${数组名[@]/要替换的元素/替换成什么}
  • 替换完以后,原数组的内容不会改变
  • 例:
    在这里插入图片描述

数组的练习

1:使用循环批量输出数组的元素
  • 例:
    在这里插入图片描述
2:通过竖向列举方法定义数组元素并批量打印
  • 例:
    在这里插入图片描述
3:将命令结果作为数组元素定义并打印
  • 例:
    在这里插入图片描述
4:利用bash for 循环打印下面这句话中字母数不大于6的单词
  • 例:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值