无法通过函数显示数组的第n个元素

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

我正在寻找从包含空格的数组中检索第n个元素。我们举个例子:

ARRAY=("This is" "a test" "array")

我创建了以下功能:

ReturnElementFromId() {
    local result="${@[$1]}"
    echo result
}

echo `ReturnElementFromId 0 "${ARRAY[@]}"` 

该功能可能看起来毫无用处,但我需要它才能像这样工作。它被设计为返回给定数组的$ 1索引。

我在互联网上做了一些研究,没有找到任何答案。我知道我写的代码(特别是result="${@[$1]}")是假的,因为

Victor Zamanian:@(和*)是“特殊参数”,因为它们不是有效的数组名称,$ {@}确实引用了编号参数

不幸的是,result="${$1}无法工作,并尝试了几乎所有我能想到的组合>。

问候,

arrays bash function return space
1个回答
1
投票

我已经纠正了你的代码。您需要记住,实际上发送给函数的所有参数都是一个值数组。

#!/bin/bash


ARRAY=("This is" "a test" "array")

function ReturnElementFromId() {
    local ix="$1" && shift
    local arr=("$@")

    echo "${arr[$ix]}"
}

echo `ReturnElementFromId 0 "${ARRAY[@]}"`

希望能帮助到你!

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