shell中将数组作为入参

参考文章:

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=

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值