我想创建一个使用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