shell数组
文章目录
- 🍊自我介绍
- 🍊shell数组概述
- 🍊Shell数组使用方法
- 数组的定义
- 直接定义
- 单元素定义
- 元素的获取
- 获取单个元素
- 获取全部元素
- 获取数组长度
- 获取整个数组长度
- 获取单个元素的长度
- 操作数组
- 增加
- 删除
- 关联数组
- 🍊
你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾” 和“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。
🍊shell数组概述
简介
根据我们学习C语言的经验,数组就是一系列数据的集合。这个数据就是我们之前学习的存储单个元素的最小单元变量,也就是说将一系列的元素整合到一个集合内,这个集合的名称就叫做数组。当然与其他语言一样,数组具备几个条件,在shell中数组仅仅支持一维数组,数组元素的下标从0开始,数组元素没有最大限制等。
使用数组的优势
在我们之前学习C语言的过程中,大家应该有所体会,当我们操作批量数据的时候,一个一个变量操作非常不便,此时我们可以使用一个数组的集合,对整个数组集合进行遍历或其他操作,最终实现批量的效果,数组使得我们的脚本更具扩展性。
🍊Shell数组使用方法
数组的定义
数组的定义有两种,可以分为直接定义和氮元素定义。
直接定义
数组类似于变量定义,只不过将里面的值用小括号括起来,其中每个元素使用空格分隔。shell数组中元素的类型可以不一样,例如其中可以包括数字和字符串。
示例:
直接在终端上操作
SHELL_ARRAY=(1 2 3 "shell")
说明:
SHELL_ARRAY 为数组名
1,2,3为保存的数字,“shell” 为保存的字符串
单元素定义
shell 中数组下标从0开始,利用单个元素来定义数组。操作和C语言类似
示例:
直接在终端上操作
SHELL_ARRAY[0]=1
SHELL_ARRAY[1]=2
SHELL_ARRAY[2]=3
SHELL_ARRAY[3]="shell"
元素的获取
获取单个元素
与变量的引用一样,数组可以获取单个位置的元素,利用==${SHELL_ARRAY[num]}==.
直接在终端上操作,在SHELL_ARRAY已经定义好的基础上
示例用法:
echo ${SHELL_ARRAY[0]} //获取数组中第一个元素
1
echo ${SHELL_ARRAY[3]} //获取数组中第四个元素
shell
获取全部元素
获取全部元素使用 ${SHELL_ARRAY[*]} 或者 ${SHELL_ARRAY[@]}
示例用法:
echo ${SHELL_ARRAY[*]}
1 2 3 shell
echo ${SHELL_ARRAY[@]}
1 2 3 shell
获取数组长度
获取整个数组长度
数组长度及数组中元素的个数,可以利用 ${#SHELL_ARRAY[*]} 或者 ${#SHELL_ARRAY[@]} ,我们发现其实就是在获取数组全部元素前添加 # 来获取数组的个数。
eg:
echo ${#SHELL_ARRAY[*]}
4
echo ${#SHELL_ARRAY[@]}
4
获取单个元素的长度
对于shell数组中的单个元素我们也可以进行长度的获取,可以利用 ==${#SHELL_ARRAY[num]} ==。
eg:
echo ${#SHELL_ARRAY[3]}
5
echo ${#SHELL_ARRAY[1]}
1
操作数组
增加
对数组元素的增加,直接对单个位置元素增加即可,例如:
SHELL_ARRAY[4]=10
echo ${SHELL_ARRAY[@]} //1 2 3 shell 10echo ${#SHELL_ARRAY[@]} //5
删除
删除数组可以使用unset,unset SHELL_ARRAY[num] 可以删除对应下标的数组元素,如果不带下标则删除数组的全部元素,例如:
unset SHELL_ARRAY[0] //删除下标为0的元素unset SHELL_ARRAY // 删除整个数组元素
关联数组
上述教大家使用的额都是我们的普通数组,Shell中还提供了一种关联性数组,在使用关联数组前,必须先使用 declare -A声明它。
eg:
declare -A ARGFILE
ARGFILE=([name1]=Shell [name2]=linux [name3]=arg) //关联数组元素赋值
echo ${ARGFILE[@]}
arg linux Shell //输出顺序和定义的顺序无关echo ${!ARGFILE[@]} //查看所有的key值
name3 name2 name1