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中使用数组作为函数参数的方法,并提供完整实例...
  • fdipzone
  • fdipzone
  • 2017年03月10日 23:27
  • 17309

shell中的数组作为参数传递

shell 数组 参数
  • brouse8079
  • brouse8079
  • 2011年05月13日 17:08
  • 12915

SHELL : 数组变量及数组参数

调用                 TGT_FILES=($(find $TGT_PATH -name $filename))                 one_by_multiple_c...
  • teddy99999
  • teddy99999
  • 2014年01月28日 21:56
  • 972

以不同方式向Shell函数传递数组参数

比较调用Shell函数时以不同方式传递数组参数的区别 Shell脚本文件如下: #!/bin/sh function demo1 {     echo "Number of params...
  • beiyangxiao
  • beiyangxiao
  • 2011年08月30日 21:17
  • 4132

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

function arraydblr { local origarray local newarray local elements local i origa...
  • guizaijianchic
  • guizaijianchic
  • 2017年09月17日 18:30
  • 607

shell函数【参数传递及输入输出】&内置函数

Linux——shell脚本基础3:shell函数【参数传递及输入输出】&内置函数   函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 ...
  • imxiangzi
  • imxiangzi
  • 2015年12月21日 18:02
  • 6632

shell调用自定义函数及传参

1 单个参数 #!/bin/bash function LoopPrint() { count=0; while [ $count -lt $1 ] ; do...
  • AlbertFly
  • AlbertFly
  • 2016年07月25日 12:20
  • 16806

shell中map的使用和遍历

定义一个空map declare -A map=() 定义时初始化map declare -A map=(["100"]="1" ["200"]="2")输出所有key echo ${!map...
  • xzw_123
  • xzw_123
  • 2015年01月20日 16:54
  • 13209

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

6.4数组变量与函数 6.4.1向函数传递数组          向脚本函数传递数组变量。如果试图将数组变量作为单个参数传递,是无法正常工作的。操作实例如下:         #!/bin/...
  • henni_719
  • henni_719
  • 2016年12月21日 12:03
  • 1685

linux中shell变量$#,$@,$0,$1,$2的含义解释

linux中shell变量$#,$@,$0,$1,$2的含义解释 linux中shell变量$#,$@,$0,$1,$2的含义解释:  变量说明:  $$  Shell本身的PID...
  • beginning1126
  • beginning1126
  • 2013年03月04日 15:38
  • 6168
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell 函数参数为数组传递
举报原因:
原因补充:

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