前言:
现在姐妹们对“数组 索引”大体比较关切,我们都想要学习一些“数组 索引”的相关文章。那么小编也在网络上网罗了一些关于“数组 索引””的相关内容,希望你们能喜欢,我们快快来了解一下吧!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中的关联数组。
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。
标签: #数组 索引