Dynamic variable names for an array in bash

前端 未结 2 1995
醉酒成梦
醉酒成梦 2021-01-06 23:11

I have an array called \"loop\".

For each element in \"loop\" I want to create an array whose name contains the text of the current element.

I then want to l

2条回答
  •  無奈伤痛
    2021-01-07 00:04

    It ain't pretty, but it's a start:

    #!/bin/bash
    loop=(
    first
    second
    third
    )
    
    for word in "${loop[@]}"    
    do
        var=${word}_holder
        eval "declare -a ${var}"
        eval "${var}=( Hello World )"
        eval 'nEntries=${#'${var}'[@]}'
        echo ${var}
        for (( ii=0; ii<$nEntries; ii++ )); do
           cmd='echo ${'${var}'['$ii']}'
           eval ${cmd}
        done
    done
    

提交回复
热议问题