参考文章:
https://www.coder.work/article/2566787
https://www.codenong.com/1063347/
网上直接搜的文章要么太绕,要么很有局限(数组元素中含有空格或者*时候无效),这里总结了几种方法:
0. 如果只传递一个数组,没有其他参数,那么直接用local_array=("$@")即可搞定,其余的方法都是多参数的
function func
{
local_array=("$@")
for str in "${local_array[@]}"
do
echo "$str"
done
}
paras=("hello world" "select * from test")
func "${paras[@]}"
1.传递函数名方式:
function func
{
name=$1[@]
local_array=("${!name}")
for str in "${local_array[@]}"
do
echo "p1 $str"
done
name=$2[@]
local_array=("${!name}")
for str in "${local_array[@]}"
do
echo "p2 $str"
done
}

本文总结了在Shell脚本中处理数组作为函数参数的几种方法,特别是当数组元素可能包含空格或者星号时。介绍了如何通过`local_array=("$@")`、传递函数名和元素下标等方式来处理这种情况,并给出了具体示例。
最低0.47元/天 解锁文章
1646

被折叠的 条评论
为什么被折叠?



