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 脚本中执行变量中的命令
发布时间:2023/05/18 浏览次数:106 分类:操作系统
-
本篇文章是关于将 Bash 命令存储在一个变量中,然后直接从这个变量中执行它。 首先,我们将讨论执行变量中包含的命令的多种方法,然后是几个脚本示例。
Bash md5sum 命令
发布时间:2023/05/18 浏览次数:197 分类:操作系统
-
本篇文章介绍如何在 Bash 中使用 md5sum 命令。Bash md5sum 命令。md5sum 命令打印给定文件的 32 字符和 128 位校验和。
在 Bash 中排序数组
发布时间:2023/05/18 浏览次数:150 分类:操作系统
-
对数组进行排序对于任何编程语言来说都是一项非常常见的任务。 在 Bash 脚本中,我们还可以通过两种不同的方式完成此任务。
Bash 中的多维数组
发布时间:2023/05/18 浏览次数:70 分类:操作系统
-
多维数组对于任何程序都是非常重要的元素。 它主要用于创建数据的表视图和许多其他用途。本文演示如何创建二维数组。 此外,我们将通过必要的示例和解释来讨论该主题。
在不指定 Bash 中的索引的情况下将新数据附加到数组
发布时间:2023/05/18 浏览次数:58 分类:操作系统
-
在 Bash 脚本中,您还可以使用数组; 您可以对数组进行声明、修改和操作。但在本文中,我们将逐步了解如何声明一个数组并将新数据添加到其中。 我们将看到在数组中添加新数据的两种不同
在 Bash 中打印数组元素
发布时间:2023/05/18 浏览次数:192 分类:操作系统
-
本文将展示我们如何在 Bash 脚本中打印数组元素。 为此,我们将讨论 5 种不同的方法。在 Bash 中使用 echo 语句打印数组元素
将数组传递给 Bash 中的函数
发布时间:2023/05/18 浏览次数:118 分类:操作系统
-
这篇文章是关于在 Bash 脚本中使用函数并将数组传递给它们的。 在进入实际主题之前,我们将简要介绍 Bash 脚本。