Bash 中的哈希表

Nilesh Katuwal 2023年1月30日 2022年5月11日
  1. 在 Bash 中的字典变量中声明和添加 <key,value>
  2. 从 Bash 的字典中检索 <key,value>
  3. 在 Bash 的字典中更新 <key,value>
  4. 从字典中删除 <key,value>
  5. 在 Bash 中迭代字典 in Bash
Bash 中的哈希表

字典,也称为哈希图或关联数组,是任何编程语言中用于存储事物集合的最基本的数据结构之一。

字典是键的集合,每个键都有一个与之关联的值。你可以使用匹配键插入、检索或更改字典中的值。

尽管 Bash 不是一种通用编程语言,但它在版本 4 及更高版本中原生支持 hashmaps

在 Bash 中的字典变量中声明和添加 <key,value>

Bash 中的变量不是强类型的,因此你必须通过声明变量的属性来强制执行类似类型的行为。

要在 Bash 中使用字典,请使用 declare 语句和 -A 选项(表示关联数组)来声明字典变量。

$ declare -A dict

我们现在已经声明了一个名为 dict 的变量,它可以像字典一样使用。要将 <key,value> 对添加到字典中,我们将遵循以下语法:

$ name_of_dictionary[key]=value

让我们使用上面的语法添加 <key, value> 对。

$ dict[1]=Nil
$ dict[2]=Esh

我们添加了两个 <key, value> 对,其中键是 12,值是 NilEsh

从 Bash 的字典中检索 <key,value>

要使用 key 检查字典中对应的 values,我们必须将带有大括号 {}$ 添加到我们定义的字典变量中。

$ echo ${dict[1]}

输出:

Nil

在 Bash 的字典中更新 <key,value>

要更新字典中现有的 <key, value>,我们必须插入一个新的 <key, value> 并覆盖现有值。

$ dict[1]=Nilesh

如果我们检索键 1 的值,那么:

$ echo ${dict[1]}

输出:

Nilesh

如我们所见,键 1NilNilesh 覆盖。

从字典中删除 <key,value>

我们使用 unset 命令删除 <key, value> 对。

$ unset dict[1]

上面的命令将删除带有键 1<key, value> 对。

在 Bash 中迭代字典 in Bash

在 Bash 中,我们可以使用 for 循环来迭代字典。让我们看一个例子:

#!/bin/bash
declare -A dict
dict[1]=Nil
dict[2]=Esh
for key in "${!dict[@]}"; do 
    echo "$key ${dict[$key]}" 
done

我们在脚本中重写了前面的命令并在 Bash 终端中运行它。 "" 用于处理带有空格的键。

输出:

bash 字典输出