有没有办法在Bash脚本中创build键值对?
我正在尝试使用Bash脚本创build一个键值对的字典。 我正在尝试使用这个逻辑:
declare -d dictionary defaults write "$dictionary" key -string "$value"
… $dictionary
是一个variables,但这不起作用。
有没有办法在Bash脚本中创build键值对?
在bash版本4中引入了关联数组。
declare -A arr arr["key1"]=val1 arr+=( ["key2"]=val2 ["key3"]=val3 )
arr数组现在包含三个键值对。 Bash是相当有限的,你可以用它们做什么,没有sorting或popup等。
for key in ${!arr[@]}; do echo ${key} ${arr[${key}]} done
将遍历所有关键值并将其回显出来。
如果你可以使用一个简单的分隔符,一个非常简单的指针是这样的:
for i in a,b c_s,d ; do KEY=${i%,*}; VAL=${i#*,}; echo $KEY" XX "$VAL; done
因此i
充满了像"a,b"
和"c_s,d"
字符序列。 每个空格分隔。 之后,我们使用参数replace来提取逗号前面的部分和后面的部分。
对于持久性键/值存储,您可以使用kv-bash
,这是https://github.com/damphat/kv-bash上的键/值数据库的纯bash实现;
用法
git clone https://github.com/damphat/kv-bash source kv-bash/kv-bash
尝试创build一些永久variables
kvset myName xyz kvset myEmail xyz@example.com #read the varible kvget myEmail #you can also use in another script with $(kvget keyname) echo $(kvget myEmail)