【Linux】shell编程—数组

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、shell数组

1,数组的概念

数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 用于区分数组的各个元素的数字编号称为下标。数组是用于储存多个相同类型数据的集合

特点:

  • 数组是相同数据类型的元素的集合。
  • 数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
  • 数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。

2.数组的定义

定义数组的四种方式:
方式一:

数组名=(值0 值1 值2 ...)

在这里插入图片描述

方式二:

数组名=([0]=值 [1]=值 [2]=值 ...)

在这里插入图片描述
方式三:

列表名="值0 值1 值2 ..."
数组名=($列表名)

在这里插入图片描述
方式四:

数组名[0]="值"
数组名[1]="值"
数组名[2]="值"
...

在这里插入图片描述

二、Shell数组操作

1. 获取数组的所有元素的列表

echo ${数组名[@]}
echo ${数组名[*]}

在这里插入图片描述

2. 获取数组的所有元素下标

echo ${!数组名[*]} 
echo ${!数组名[@]}

在这里插入图片描述

3.取数组的元素个数

echo ${#数组名[@]} 
echo ${#数组名[*]}

在这里插入图片描述

4. 获取数组的某个元素的值

echo ${数组名[下标]}

在这里插入图片描述

5.删除数组某个元素

unset 数组名[下标]

在这里插入图片描述

6.删除数组

unset 数组名

在这里插入图片描述

7.数组切片

echo ${数组名[@]:下标:长度}

在这里插入图片描述

8.数组字符替换

echo ${数组名[@]/旧字符/新字符}

在这里插入图片描述

9.数组追加元素

1.指定位置添加(直接赋予新值覆盖原来的元素)

数组名[下标]=值

在这里插入图片描述

2.末尾追加元素

数组名[${#数组名[*]}] =新元素 
数组名[${#数组名[@]}] =新元素

在这里插入图片描述

3.进行末尾多元素追加

数组名=("${数组名[@]}" 值1 值2 ......值N)

在这里插入图片描述

4.直接末尾追加多元素

数组名+=(值1 值2 ......值N)

在这里插入图片描述

三、数组在函数的传参

要求:一个遍历数组的函数,并且让数组里的元素翻倍输出

#!/bin/bash
a=0
test(){
local arr=$@
for i in ${arr[@]}
do
    let i*=2
    arr[$a]=$i
    let a++
done
echo ${arr[@]}
}
############### main ###############
read -p "请输入一个数组:" num
arr=($num)
echo "数组翻倍后为:$(test ${arr[@]}) "

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值