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 字典輸出