龙空技术网

谈一谈shell中的索引数组

双主双机热备 509

前言:

现在姐妹们对“数组 索引”大体比较关切,我们都想要学习一些“数组 索引”的相关文章。那么小编也在网络上网罗了一些关于“数组 索引””的相关内容,希望你们能喜欢,我们快快来了解一下吧!

Shell中的数组-索引数组

数组是shell中比较重要的一种数据类型。

常见的应用场景:

求数组长度、遍历元素、元素切片、替换、删除等等操作。

Shell中数组分类:

(1)、索引数组

(2)、关联数组

注意:关联数组,bash4.0支持

提示:此篇仅仅介绍(1)索引数组

声明数组:

arrayName=(参数1 参数2...)

或者

declare -a arrayName

或者

strs="kingdom queen prince"

arrayName=(${str})

或者

arrayName[0]=kingdom

arrayName[1]=queen

arrayName[2]=prince

等等。

补充:

(1) 、Bash shell只支持一维数组

(2) 、存放于内存

(3) 、索引不一定连续

常用操作:

以下arr表示数组名,个别类比预定义命令来记忆

(1) 、查看数组元素个数

${#arr[@]}

(2) 、查看数组所有元素

${arr[@]}

(3) 、查看数组下标

${!arr[@]}

(4) 、清除某个元素

以角标为1的元素为例

unset ${arr[1]}

(5) 、清除整个数组

unset arr

案例1:

简单测试数组的常用操作

arrayName=(kingdom queen prince)

echo ${arrayName[1]}

echo ${arrayName[@]}

echo ${!arrayName[@]}

echo ${#arrayName[@]}

unset arrayName[1]

unset arrayName

案例2:

利用for为数组赋值

#!bin/bash

#利用for循环为数组赋值

#auth:odysee

for i in "$@"

do

personName[y++]=${i}

done

echo "此数组中的人名为:${personName[@]}"

运行,输入人名 kingdom queen prince princess

[root@kingdom shellFile]# bash array_for.sh kingdom queen prince princess

此数组中的人名为:kingdom queen prince princess

案例3:

利用数组取当前主机的网关

[root@kingdom shellFile]# route -n

[root@kingdom shellFile]# arrs=($(route -n | grep "^0.0.0.0"))

[root@kingdom shellFile]# echo "Gateway is ${arrs[1]}"

Gateway is 172.31.111.253

方式二:

route -n | grep "^0.0.0.0" | awk '{print $2}'

测试完成

由于索引数组的元素是通过数组下标来访问的,这种访问方式在表达某些关联性很强的数据时会存在限制。下一篇我们介绍shell中的关联数组。

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

标签: #数组 索引