众所周知,在bash编程中传递参数的方法是$1
,...,$N
。然而,我发现将数组作为参数传递给接收多个参数的函数并不容易。这是一个例子:
f(){
x=($1)
y=$2
for i in "${x[@]}"
do
echo $i
done
....
}
a=("jfaldsj jflajds" "LAST")
b=NOEFLDJF
f "${a[@]}" $b
f "${a[*]}" $b
如描述所述,函数f
接收两个参数:第一个分配给x
,它是一个数组,第二个分配给y
。
f
可以通过两种方式调用。第一种方法使用"${a[@]}"
作为第一个参数,结果为:
jfaldsj
jflajds
第二种方法使用"${a[*]}"
作为第一个参数,结果是:jfaldsj
jflajds
LAST
结果都不如我所愿。那么,有没有人对如何正确地在函数之间传递数组有任何想法呢?