如何从所有参数中选择数组?

问题描述 投票:0回答:1

给定数组arr和字符串str。如果我以下一个方式发送它们:

func "${arr[@]}" ${str}

如何在func函数中定义数组和字符串?

function func {
local arr=....
local str=....
}

根据我的理解(这是正确的?)如果我愿意:local arr=("$@")我会得到: arr[0]=the first argument - in this case it's will be all the array arr[1]=str

(根据我的检查local arr=("$@")给出的数组与arr(我发送的内容)完全相同,除此之外还添加了str作为此数组中的最后一个元素..)

[我不要求“如何在bash中发送数组”,但是,如何从所有参数中选择数组]

arrays bash shell scripting
1个回答
1
投票

$@是传递给函数的所有参数。检索最后一个参数很简单。只需使用最后一个数组条目。之后,您必须从阵列中删除最后一个条目。

function func {
    local arr=("$@")
    local str="${arr[-1]}"
    unset 'arr[-1]'
}

确保始终使用至少一个参数调用func,否则脚本将失败。

© www.soinside.com 2019 - 2024. All rights reserved.