我正在寻找从包含空格的数组中检索第n个元素。我们举个例子:
ARRAY=("This is" "a test" "array")
我创建了以下功能:
ReturnElementFromId() {
local result="${@[$1]}"
echo result
}
echo `ReturnElementFromId 0 "${ARRAY[@]}"`
该功能可能看起来毫无用处,但我需要它才能像这样工作。它被设计为返回给定数组的$ 1索引。
我在互联网上做了一些研究,没有找到任何答案。我知道我写的代码(特别是result="${@[$1]}"
)是假的,因为
Victor Zamanian:@(和*)是“特殊参数”,因为它们不是有效的数组名称,$ {@}确实引用了编号参数
不幸的是,result="${$1}
无法工作,并尝试了几乎所有我能想到的组合>。
问候,
我已经纠正了你的代码。您需要记住,实际上发送给函数的所有参数都是一个值数组。
#!/bin/bash
ARRAY=("This is" "a test" "array")
function ReturnElementFromId() {
local ix="$1" && shift
local arr=("$@")
echo "${arr[$ix]}"
}
echo `ReturnElementFromId 0 "${ARRAY[@]}"`
希望能帮助到你!