迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash 关联数组

作者:迹忆客 最近更新:2023/05/16 浏览次数:

本篇文章介绍如何在 Bash 中创建关联数组。


Bash 关联数组

数组在 Bash 中可以很好地用于存储数据,并且在 Bash 中也可以创建带有字符串索引的数组,这称为关联数组。 关联数组是在 Bash 4 中加入的,之前的版本不能声明。

首先,检查 Bash 的版本,因为如果版本小于 4,则无法声明关联数组。 我们使用 declare 命令来声明一个关联数组。

按照以下步骤声明关联数组:

  • 首先,检查 Bash 的版本,然后运行以下命令:
    bash --version
    
    上面的命令将检查 Bash 的版本。 输出是:
    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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Bash 脚本中执行变量中的命令

发布时间:2023/05/18 浏览次数:106 分类:操作系统

本篇文章是关于将 Bash 命令存储在一个变量中,然后直接从这个变量中执行它。 首先,我们将讨论执行变量中包含的命令的多种方法,然后是几个脚本示例。

Bash 变量相乘

发布时间:2023/05/18 浏览次数:50 分类:操作系统

本篇文章介绍如何在 Bash 中将两个变量相乘。在 Bash 中乘以变量。将两个变量相乘在 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 浏览次数:192 分类:操作系统

本文将展示我们如何在 Bash 脚本中打印数组元素。 为此,我们将讨论 5 种不同的方法。在 Bash 中使用 echo 语句打印数组元素

将数组传递给 Bash 中的函数

发布时间:2023/05/18 浏览次数:118 分类:操作系统

这篇文章是关于在 Bash 脚本中使用函数并将数组传递给它们的。 在进入实际主题之前,我们将简要介绍 Bash 脚本。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便