最佳答案
正如我们所知,在 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
两个结果都不如我所愿。那么,有人知道如何正确地在函数之间传递数组吗?