Bash 关联数组
本篇文章介绍如何在 Bash 中创建关联数组。
Bash 关联数组
数组在 Bash 中可以很好地用于存储数据,并且在 Bash 中也可以创建带有字符串索引的数组,这称为关联数组。 关联数组是在 Bash 4 中加入的,之前的版本不能声明。
首先,检查 Bash 的版本,因为如果版本小于 4,则无法声明关联数组。 我们使用 declare 命令来声明一个关联数组。
按照以下步骤声明关联数组:
-
首先,检查 Bash 的版本,然后运行以下命令:
bash --version
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-
现在使用 declare 命令声明一个关联数组:
declare -A DemoArray DemoArray[One]=Jiyik1 DemoArray[Two]=Jiyik2 DemoArray[Three]=Jiyik3 DemoArray[Four]=Jiyik4 DemoArray[Five]=Jiyik5 DemoArray[Six]=Jiyik6
-
此外,还有另一个命令,我们可以在一行中声明一个关联数组:
declare -A DemoArray1=( [One]=Jiyik1 [Two]=Jiyik2 [Three]=Jiyik3 )
访问关联数组
我们可以单独访问关联数组的元素,也可以使用数组。 我们可以直接回显它们或将数组放入循环中。
查看命令以单独访问值:
echo ${DemoArray[One]}
echo ${DemoArray[Two]}
echo ${DemoArray[Three]}
echo ${DemoArray[Four]}
echo ${DemoArray[Five]}
echo ${DemoArray[Six]}
上面的命令将在给定索引上打印关联数组的值。 查看输出:
Jiyik1
Jiyik2
Jiyik3
Jiyik4
Jiyik5
Jiyik6
我们还可以使用循环访问关联数组的所有值。 看命令:
for ArrayKey in "${!DemoArray[@]}"; do echo $ArrayKey; done
echo "${!DemoArray[@]}"
这里 !
可用于读取关联数组的键。 第一个命令将逐个打印关联数组的键,第二个命令将一次打印所有键。
查看输出:
Four
Six
One
Five
Two
Three Four Six One Five Two
同样,要打印该值,我们将删除! 来自上述命令的运算符:
for ArrayValue in "${DemoArray[@]}"; do echo $ArrayValue; done
echo "${DemoArray[@]}"
现在,这些命令将打印给定关联数组的所有值。 查看输出:
Jiyik4
Jiyik6
Jiyik1
Jiyik5
Jiyik2
Jiyik3 Jiyik4 Jiyik6 Jiyik1 Jiyik5 Jiyik2
最后,我们可以使用 for 循环打印带有值的键。 看命令:
for ArrayKey in "${!DemoArray[@]}"; do echo "$ArrayKey => ${DemoArray[$ArrayKey]}"; done
上面的命令打印给定数组的所有键值对。 查看输出:
Three => Jiyik3
Four => Jiyik4
Six => Jiyik6
One => Jiyik1
Five => Jiyik5
Two => Jiyik2
向关联数组添加新成员
向关联数组添加新元素是一项非常简单的操作。 我们在数组和新键值对之间使用 += 连接运算符。
我们创建一个键值对,然后将其分配给我们的关联数组。 看命令:
echo "${DemoArray[@]}"
DemoArray+=([Seven]=Jiyik7)
echo "${DemoArray[@]}"
上面的命令将打印原始数组,添加一个新成员,然后打印修改后的数组。 查看输出
Jiyik3 Jiyik4 Jiyik6 Jiyik1 Jiyik5 Jiyik2
Jiyik3 Jiyik4 Jiyik7 Jiyik6 Jiyik1 Jiyik5 Jiyik2
从关联数组中删除成员
删除关联数组的成员也是一个简单的操作。 我们对数组成员使用 unset 命令,该成员将从数组中删除。
请参阅命令。
echo "${DemoArray[@]}"
unset DemoArray[Seven]
echo "${DemoArray[@]}"
上面的命令会先显示原来的数组,然后删除数组的成员[Seven],然后再次显示修改后的数组。 查看输出:
Jiyik3 Jiyik4 Jiyik7 Jiyik6 Jiyik1 Jiyik5 Jiyik2
Jiyik3 Jiyik4 Jiyik6 Jiyik1 Jiyik5 Jiyik2
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。