如何存储传递到函数的数组,ksh



当我们在ksh中进行动态范围时,我们可以从调用函数访问变量值。但是我无法存储这些值。请帮助这样做。

#!/bin/ksh
fun1(){
eval echo "${$1[@]}"
}
fun2(){
set -A var1 val1 val2 val3 val4
fun1 var1
}
fun2

我想将的值存储在新数组中。我已经尝试了下面的尝试。

fun1(){
set -A array1 `eval echo "${$1[@]}"`
echo " ${array[@]} "
}

但不起作用。如何存储这些值。

在ksh93函数中,您可以用 typeset -nnameref

$ function f1 { nameref a=$1; echo ${a[1]}; }
$ set -A arry fee fie foe fum
$ f1 arry
fie
$ set -A barry foo bar
$ f1 barry
bar

nameReference可以指向不同的类型:数组,关联数组(地图(等。

最新更新