我想創建一個使用Bash腳本的鍵值對的字典。我正在嘗試使用此邏輯:有沒有辦法在Bash腳本中創建鍵值對?
declare -d dictionary
defaults write "$dictionary" key -string "$value"
...其中$dictionary
是一個變量,但這不起作用。
有沒有辦法在Bash腳本中創建鍵值對?
我想創建一個使用Bash腳本的鍵值對的字典。我正在嘗試使用此邏輯:有沒有辦法在Bash腳本中創建鍵值對?
declare -d dictionary
defaults write "$dictionary" key -string "$value"
...其中$dictionary
是一個變量,但這不起作用。
有沒有辦法在Bash腳本中創建鍵值對?
在bash版本4中引入了關聯數組。
declare -A arr
arr["key1"]=val1
arr+=(["key2"]=val2 ["key3"]=val3)
arr數組現在包含三個鍵值對。 Bash是相當有限的,你可以與他們雖然做什麼,不排序或爆裂等
for key in ${!arr[@]}; do
echo ${key} ${arr[${key}]}
done
將循環在所有鍵值和回聲出來。
+1。不需要引用鍵雖然 –
重要的是要注意,由於其GPLv3許可證,Bash 4沒有隨Mac OS X一起提供;您必須下載和安裝高了吧。 (蘋果仍然運送Bash 3.2。) – PleaseStand
真棒,很高興知道這個...... :) – RKS
如果你可以用一個簡單的分隔符,很簡單的oneliner是這樣的:
for i in a,b c_s,d ; do
KEY=${i%,*};
VAL=${i#*,};
echo $KEY" XX "$VAL;
done
據此i
充滿了像"a,b"
和"c_s,d"
字符序列。每個用空格分隔。在do
之後,我們使用parameter substitution來提取逗號,
之前的部分和其後的部分。
對於持久鍵/值存儲,您可以使用kv-bash
,純bash的執行鍵/值數據庫的可在https://github.com/damphat/kv-bash
使用
git clone https://github.com/damphat/kv-bash
source kv-bash/kv-bash
嘗試創建一些永久變量
kvset myName xyz
kvset myEmail [email protected]
#read the varible
kvget myEmail
#you can also use in another script with $(kvget keyname)
echo $(kvget myEmail)
在哪個shell? – Johnsyweb
我正在bash上工作。想通過一種方法來做到這一點。 – RKS
使用,這也有助於:網址+ =( ' key1的 '$值1' 鍵2 '$值2' KEY3 '你自己也可以' ' –
RKS