我有两个变量,称为变量1和变量2, 一个包含名称列表,一个包含值列表,列表长度相同。我将如何创建一个关联数组,其中名称列表中的第一个名称是数组中某个项的键,值列表中的第一个值是该键的索引。例如
declare -A AgeDatabase
variable1=John Mary Sam
variable2=15 16 19
$ echo $AgeDatabase[John]
15
$ echo $AgeDatabase[Mary]
16
$ echo $AgeDatabase[Sam]
19
在这个例子中,我知道我可以手动设置这些值,但是我想自动设置值的过程,使用某种循环,我不确定如何以及任何帮助将被赞赏。
答案 0 :(得分:2)
使用数组作为列表:
#!/bin/bash
names=(John Mary Sam)
ages=(15 16 19)
declare -A AgeDatabase
for ((i=0; i<${#names[@]}; ++i)) ; do
AgeDatabase[${names[i]}]=${ages[i]}
done
echo ${AgeDatabase[John]}
请注意打印数组值并指定它们的语法。
答案 1 :(得分:1)
declare -A AgeDatabase=( ["John"]="15" ["Mary"]="16" ["sam"]="19")
for age in "${!AgeDatabase[@]}"; do echo "$sound - ${AgeDatabase["$age"]}"; done