shell 函数参数为数组传递

转载 2015年11月21日 19:30:06

You cannot pass an array, you can only pass its elements (i.e. the expanded array).

#! /bin/bash
function f() {
    a=("$@")
    ((last_idx=${#a[@]} - 1))
    b=${a[last_idx]}
    unset a[last_idx]

    for i in "${a[@]}" ; do
        echo "$i"
    done
    echo "b: $b"
}

x=("one two" "LAST")
b='even more'

f "${x[@]}" "$b"
echo ===============
f "${x[*]}" "$b"

The other possibility would be to pass the array by name:

#! /bin/bash
function f() {
    name=$1[@]
    b=$2
    a=("${!name}")

    for i in "${a[@]}" ; do
        echo "$i"
    done
    echo "b: $b"
}

x=("one two" "LAST")
b='even more'

f x "$b"



http://stackoverflow.com/questions/16461656/bash-how-to-pass-array-as-an-argument-to-a-function

shell中的数组作为参数传递

shell 数组 参数

shell 使用数组作为函数参数的方法

因工作需要,需要使用shell开发一些小工具,当使用数组作为函数参数时,发现只能传递数组的第一个元素,数组后面的元素不能传递到函数内。本文将介绍在shell中使用数组作为函数参数的方法,并提供完整实例...
  • fdipzone
  • fdipzone
  • 2017年03月10日 23:27
  • 16306

shell 向函数传递数组和从函数返回数组的一个细节问题

function arraydblr { local origarray local newarray local elements local i origa...

linux shell 传递带空格的数组

本测试有两个程序,程序a接收所有的参数,并且过滤掉-skipTrash,然后调用程序b,程序b非常简单,只是把所有的参数都打印出来,证明参数是正确的。 程序a的源代码如下: #!/bin/...

Linux笔记——shell补充:参数传递&函数等

列表: Linux笔记——vim常用操作及扩展补充[手册] Linux笔记——linux常用命令集合 Linux笔记——命令:awk Linux笔记——命令:sed Linux笔记——命令:...
  • wklken
  • wklken
  • 2011年11月19日 19:19
  • 11777

Shell脚本通过参数传递调用指定函数

我们在写一些功能性脚本的时候,往往会把操作相似或者参数类似行为接近的函数放在同一个shell脚本中,这样管理方便,维护简单,也很清晰。对于这种情况,通常的办法是,在shell脚本中定义所有用到的函数,...

Linux shell脚本传参,传入数组

1、编写可接受数组参数的脚本:test.sh :#!/bin/bash for i in $@ do echo $i done 2、给脚本执行权限:chmod +x test.s...

SHELL : 数组变量及数组参数

调用                 TGT_FILES=($(find $TGT_PATH -name $filename))                 one_by_multiple_c...

shell 二维数组

这次写脚本时用到了bash shell数组,当初做法是配置文件里面写成数组形式A=(element1 element2 element3 .... element4),然后一个脚本读取这个配置文件,于...
  • ee230
  • ee230
  • 2015年09月09日 15:02
  • 7837

第6章创建函数-----------(向函数传递数组、从函数返回数组)

6.4数组变量与函数 6.4.1向函数传递数组          向脚本函数传递数组变量。如果试图将数组变量作为单个参数传递,是无法正常工作的。操作实例如下:         #!/bin/...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell 函数参数为数组传递
举报原因:
原因补充:

(最多只允许输入30个字)