在bash中通过关联数组实现多维数组



我试图将文件从目录加载到关联数组中,访问权限为"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/POP。Aic文件存在,并且该文件中的第4行也存在。循环内的注释echo显示value赋值

有没有人,请,帮助和告诉我我错在哪里?

找到了罪恶的根源——子壳。Echo "1 2 3" | while <…>将提交下一个子shell,因此变量将仅在本地设置。解决方法是使用while <…>完成<<(find ./sys -type f)

相关内容

  • 没有找到相关文章

最新更新