bash中的多维数组通过关联数组

时间:2015-08-07 11:54:14

标签: arrays bash multidimensional-array

我尝试将文件从目录加载到关联数组,其访问权限为" FDN,4"其中FND是文件的基名,4 - 是行号:

loadFiles() {
local iter
local comname
local lines

echo "# Loading files"
find ./sys -type f | while read iter
do
    comname=$(basename "$iter" .aic)

    echo "# $comname"

    local i
    i=0
    while IFS= read -r line 
    do
       commands["$comname,$i"]="$line"
       #echo "$comname,$i = ${commands[$comname,$i]}"
       ((i++))
    done < "$iter"
    [[ -n $line ]] && commands["$comname,$i"]="$line"
done
}

loadFiles

echo "POP,4 = ${commands[POP,4]}"

我什么都没得到,。/ sys / dir / Pod.aic文件存在,而且这个文件中也存在第4行。循环中的注释回显显示值赋值。

任何人,请帮助并告诉我哪里错了?

1 个答案:

答案 0 :(得分:1)

找到邪恶的根源 - 子壳。回声&#34; 1 2 3&#34; |而&lt; ...&gt;将提交nex子shell,因此变量将仅在本地设置。灵魂就是在&lt; ...&gt;时使用完成&lt; &lt;(找./sys -type f)