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