Linux数组

目录

一.概念

(一)什么是数组?

(二)数组的表现方式

(三)数组的数据类型

二.运用数组查看、修改、删除相关信息

(1)查看数组的元素列表

(2)查看数组的长度(元素的个数)

(3)查看数组的元素下标

(4)查看某个下标的元素值

(5)将数组分片

三.数组遍历和重新定义

四.数组追加数值

五.使用函数运用数值

(一)向函数传数组参数

(二)从函数返回数组

六.实操运用

(1)判断数组是否完整


一.概念

(一)什么是数组?

数组是一种数据结构,用于存储相同类型的元素的集合。它由一组相同类型的元素组成,并按照一定的顺序排列。每个元素在数组中都有一个唯一的索引,可以通过索引来访问和修改数组元素。

数组可以用于存储任意类型的数据,如整数、浮点数、字符等。

(二)数组的表现方式

(1)数组名=(数值1 数值2 数值3)

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

(3)列表名="数值1 数值2 数值3"

         数组名=($列表名)

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

(三)数组的数据类型

  • 数值型        (10 20 30 40 50 60)
  • 字符型        ("a" "b" "c" "d" "e")  或  ('a' 'b' 'c' 'd' 'e')

二.运用数组查看、修改、删除相关信息

(1)查看数组的元素列表

echo ${数组名[@]}         # @ 可以更换成 * 

echo ${数组名[*]}

(2)查看数组的长度(元素的个数)

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

(3)查看数组的元素下标

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

(4)查看某个下标的元素值

echo ${数组名[下标]}

(5)将数组分片

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

三.数组遍历和重新定义

arr=(1 2 3 4 5)
n=0
for i in ${arr[@]}
do
    arr[$n]=$[i*2]
    let n++
done

四.数组追加数值

1)数组名[新下标]=新数值

2)数组名[数组长度]=新数值        #注意:此方法只仅适用于完整的数组

3)数组名+=(新数值1 新数值2 ....)

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

五.使用函数运用数值

(一)向函数传数组参数

函数名() {
     数组2=($@)         #在函数体内将传入的列表重新组成数组
     ....
}

函数名 ${数组1[@]}      #在函数体外将数组分解成列表传入

(二)从函数返回数组

函数名(){
    ....
    echo ${数组2[@]}     #在函数体内以列表形式返回值
}

数组1=(函数名 参数)      #在函数体外将函数执行的结果重新组合成数组

六.实操运用

(1)判断数组是否完整

#!/bin/bash
#判断数组是否完整
array1=(10 20 30 40 50 60)
array3=([0]="a" [1]="b" [2]="c" [3]="d" [5]="f")

length1=${#array1[@]}
length3=${#array3[@]}

last1=$[length1 - 1]
last3=$[length3 - 1]

arr1_last=${array1[$last1]}
arr3_last=${array3[$last3]}

ARR1_LAST=$(echo ${array1[@]} | awk '{print $NF}')
ARR3_LAST=$(echo ${array3[@]} | awk '{print $NF}')


if [ "$arr1_last" == "$ARR1_LAST" ];then
    echo "array1 为完整的数组"
else
    echo "array1 数组不完整"
fi

if [ "$arr3_last" == "$ARR3_LAST" ];then
    echo "array3 为完整的数组"
else
    echo "array3 数组不完整"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值