Bash从参数中选择数组

时间:2017-09-05 19:38:32

标签: arrays bash select element ifs

我有一个充满了这些元素的数组;

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 = 456,如'foo'。 'foo'将是2美元。在bash中这可能吗?

我在想这个方向:

"${vars[@]$2}"

1 个答案:

答案 0 :(得分:3)

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

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

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