shell编程之数组

134 阅读1分钟

数组的定义

数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 用于区分数组的各个元素的数字编号称为下标。元素的下标从0开始。 数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。

定义数组的方法

Shell中,数组用括号来表示,元素用"空格"符号分隔开。

数组包括的数据类型:

  • 数值型
  • 字符型 (如果元素值为字符类型,需要加单引号或双引号,防止单个元素中有空格被当成2个元素)
  • 混合型数值加字符

方法一:

数组名=(value1 value2 value3 ...)

方法二:

先定义列表,再引用列表的值定义数组

列表名="value1 value2 value3"

数组名=($列表名)

方法三:

用下标值定义每个元素

数组名=([0]=value1 [1]=value2 [2]=value3)

image.png

引用数组的值

获取数组的数据列表

image.png

查看数组内某一个元素的值

${数组名[n]}

image.png

获取数组的长度

echo ${#array[@]}

image.png

数组分片(数组截取)

${数组名[@]:起始位置:截取长度}

image.png

数组元素替换

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

image.png

删除数组

unset 数组名[n]

image.png

使用for遍历输出数组的每个元素值

image.png

通过下标值来遍历

image.png

将数组的值传给函数

第一步:向函数传入数组的时候需要先把数组转换成列表作为函数的参数使用:
 函数名 ${数组名1[@]}
 ​
 第二步:在函数内把传入的列表重新组合成数组:
 数组名2=($@)
 ​
 第三步:在函数外重新组合成数组:
 数组名3=(`函数名 ${数组名1[@]}`)

image.png

image.png