在Bash中加载数组,其名称作为参数传递

时间:2014-06-13 09:04:08

标签: arrays bash argument-passing

在Bash中有一种方法可以通过myFun传递像ARRAY这样的内容,并在myFun中打印下面的数组元素吗?

myFun {
   echo ${$1[1]}
   ...
}

ARRAY=( first second last )
myFun "ARRAY"

我尝试过Bash返回糟糕的替换。

1 个答案:

答案 0 :(得分:1)

你可以做到

myFun () {
    tmp=$1[@]
    array=("${!tmp}")

    for i in "${array[@]}" ; do
        echo "$i"
    done

}
ARRAY=( 1 2 3 4 5 )
myFun ARRAY