【发布时间】:2018-10-17 10:57:37
【问题描述】:
使用 bash,可以将数组存储在字典中吗?我已经展示了一些从字典中获取数组的示例代码,但它似乎失去了它是一个数组的事实。
我希望它是 dict+=(["pos"]="${array[@]}") 命令,但我不确定如何执行此操作,或者是否可能。
# Normal array behaviour (just an example)
array=(1 2 3)
for a in "${array[@]}"
do
echo "$a"
done
# Outputs:
# 1
# 2
# 3
# Array in a dictionary
declare -A dict
dict+=(["pos"]="${array[@]}")
# When I fetch the array, it is not an array anymore
posarray=("${dict[pos]}")
for a in "${posarray[@]}"
do
echo "$a"
done
# Outputs:
# 1 2 3
# but I want
# 1
# 2
# 3
【问题讨论】:
-
如果你想在 shell 中支持这种级别的数据结构,你可能需要考虑
ksh;否则,是时候考虑使用适当的通用编程语言了。在ksh,set -A foo; foo[k]=(1 2 3); echo ${foo[k][1]}输出2。
标签: arrays bash associative-array