如何用 korn shell 中的变量替换数组名称?

How to substitute array name with variable in korn shell?

我有两个数组:options 和args,我想显示数组的内容。 为此,我希望编写一个通用函数,它将采用数组的名称并显示其内容。

例如。

set -A options val1 val2 val3
set -A args var1 var2 var3

我现在在做什么来显示内容:

dispArr() {
    i=0
    while [ "$i" -lt "${#options[*]}" ] #line1
    do
        echo ${options[$i]} #line2
        ((i=i+1))
    done
}

目前我有两个不同的函数,一个用于数组"options",另一个用于数组"args"

我想用变量替换第 1 行和第 2 行中的数组名称(上面代码中的"options"),这样我就可以像下面这样调用来打印任何数组的内容:

dispArr options #print the contents of array "options"
dispArr args #print the contents of array "args"

我尝试提供 $1 来代替数组名称,但没有成功。 我也尝试了不同的报价,但它也没有用。

我是 unix 和 shell 脚本的新手,所以任何建议都将不胜感激。 提前致谢。

隆隆声

dispArr() { nameref arr=; printf "%s\n" "${arr[@]}"; }

Qishq

dispArr() { eval printf "%s\\n" "${[@]}"; }