【问题标题】:Print array value instead of its name打印数组值而不是其名称
【发布时间】:2020-05-25 23:13:56
【问题描述】:
#! /bin/bash
array_1=(1 3 5)
array_2=(7 9 3)
array_3=(0 -1 3)    

for i in {1..3}; do
        array=array_$i
        echo "${array[@]}"
done

我打印的是“array_1”、“array_2”和“array_3”而不是它的值。

【问题讨论】:

    标签: arrays bash loops


    【解决方案1】:

    将完整的变量名加上[@] 存储为字符串,然后获取带有${!var} indirect expansion 的元素。这很时髦,但是将[@] 放在字符串中而不是在扩展中是要走的路。

    #!/bin/bash
    array_1=(1 3 5)
    array_2=(7 9 3)
    array_3=(0 -1 3)    
    
    for i in {1..3}; do
        array="array_$i[@]"
        echo "${!array}"
    done
    

    【讨论】:

      猜你喜欢
      • 2013-07-12
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2019-12-23
      • 2014-04-28
      • 1970-01-01
      相关资源
      最近更新 更多