Bash select 来自数组的参数

Bash select from array by argument

我有一个数组,里面装满了这样的元素;

vars=($bla=123 foo=456 bar=789)

现在,我可以使用这些并使用 IFS '=' 拆分它们,如下所示:

for var in "${vars[@]}"; do
    IFS='=' read -a split <<< ${vars}
    nr=${split[1]}
    title=${split[0]}

效果很好。

但是,我希望能够通过向 'foo' 之类的脚本传递参数来 select 例如项目 foo=456。 'foo' 将是 2 美元。这在 bash 中可行吗?

我是这么想的:

"${vars[@]}"

使用关联数组(需要bash 4+):

#!/bin/bash
bla=xyz
declare -A vars=([$bla]=123 [foo]=456 [bar]=789)

set -- one foo
echo ${vars[]}