【问题标题】:Creating an associative array from two variables containing lists of same length从包含相同长度列表的两个变量创建关联数组
【发布时间】:2015-01-05 08:51:06
【问题描述】:

我有两个变量,分别称为变量 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

在这个例子中,我知道我可以手动设置这些值,但是我想使用某种循环自动设置值的过程,我不确定如何以及任何帮助将不胜感激。

【问题讨论】:

    标签: bash associative-array


    【解决方案1】:

    对列表使用数组:

    #!/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]}
    

    注意打印数组值并分配给它们的语法。

    【讨论】:

      【解决方案2】:
      declare -A AgeDatabase=( ["John"]="15" ["Mary"]="16" ["sam"]="19")
      
      for age in "${!AgeDatabase[@]}"; do echo "$sound - ${AgeDatabase["$age"]}"; done
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-06
        • 2010-11-15
        • 2023-03-10
        • 1970-01-01
        • 2019-05-31
        • 2021-10-25
        • 2021-05-11
        • 2019-11-30
        相关资源
        最近更新 更多