我想将数组传递给函数并将数组中的值用作命令参数,如下所示:
command
可以接收N个参数,例如:param1
param2
oneparam
1 a
2 b
3 c
onotherparam
my_func() {
command param1 param2 $1 $2 $3
}
my_arr=("1 a" "2 b" "3 c")
my_func "oneparam" ${my_arr[@]} "onotherparam"
但我没有将它全部作为函数中的单个参数接收,所以$1
只是1 a
代替"1 a" "2 b" "3 c"
然后我虽然可以这样做:
my_func() {
command param1 param2 $1 $2 $3
}
my_arr=("1 a" "2 b" "3 c")
params=${my_arr[@]/%/\"} # 1 a" 2 b" 3 c"
my_func "oneparam" "$params" "onotherparam"
但它只将引号放在每个元素的末尾。
如何在每个数组元素的两侧放置引号?