2017-09-05 49 views
0

我有一个数组充满了这些元素;现在Bash通过参数从数组中选择

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'这样的脚本来选择实例项目foo = 456。 '富'将是2美元。这可能在bash中吗?

我在这个方向思考:

"${vars[@]$2}" 

回答

2

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

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

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

真棒!当我从csv读取这个数据时,是否可以将我现有的数组转换为关联数组?这样我可以让我的csv更清洁一点,可以这么说 – volc

+0

@volc:随意问一个新问题。 – choroba