Bash 中的雜湊表
Nilesh Katuwal
2023年1月30日
2022年5月11日
-
在 Bash 中的字典變數中宣告和新增
<key,value>
對 -
從 Bash 的字典中檢索
<key,value>
對 -
在 Bash 的字典中更新
<key,value>
-
從字典中刪除
<key,value>
對 - 在 Bash 中迭代字典 in 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>
對,其中鍵是 1
和 2
,值是 Nil
和 Esh
。
從 Bash 的字典中檢索 <key,value>
對
要使用 key
檢查字典中對應的 values
,我們必須將帶有大括號 {}
的 $
新增到我們定義的字典變數中。
$ echo ${dict[1]}
輸出:
Nil
在 Bash 的字典中更新 <key,value>
要更新字典中現有的 <key, value>
,我們必須插入一個新的 <key, value>
並覆蓋現有值。
$ dict[1]=Nilesh
如果我們檢索鍵 1
的值,那麼:
$ echo ${dict[1]}
輸出:
Nilesh
如我們所見,鍵 1
的 Nil
被 Nilesh
覆蓋。
從字典中刪除 <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 終端中執行它。 ""
用於處理帶有空格的鍵。
輸出: