首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash二维数组不是持久性的

Bash二维数组不是持久性的
EN

Stack Overflow用户
提问于 2016-05-10 01:31:56
回答 1查看 32关注 0票数 0
代码语言:javascript
运行
复制
    303   for count in "${nodeof[@]}"; do
    304       lines=`GetNodeMemory $count`
    305       printf %s "$lines" | while IFS= read -r line; do \
    306       {
    307         key=`echo $line | awk -F':' '{print $1}' | cut -d' ' -f3`
    308         [[ -z ${key} && ${key} ]] && continue
    309         for chk in "${MemVar[@]}"; do
    310             [[ "${key}" == "${chk#*:}" ]] && break
    311         done
    312         #echo "ke:${chk#*:} - ind:${chk%%:*}"
    313         NodeMem[$count,${chk%%:*}]=`echo $line \
    314               | /bin/grep -i "${key}" | awk -F':' '{print $2}' \
    315               | cut -d' ' -f2`
    316        #echo "${chk#*:} ${NodeMem[$count,${chk%%:*}]}"
    317        chk=""
    318       } done
    319   done
    320 
    321   for count in "${nodeof[@]}"; do
    322       for chk in "${MemVar[@]}"; do
    323            echo "${NodeMem[${count},${chk%%:*}]}"
    324       done
    325   done

这里的NodeMem是一个二维数组,如果我使用line#316打印,则数组值可以正常打印。但是,如果使用line#323打印,则输出仅为空行。这是怎么回事?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-05-10 01:48:08

Bash不支持多维数组。当你给foo,bar赋值时,它的计算结果是索引0。对于您正在使用的语法,array1,5与array5相同。此外,array2,5与array5相同。

请参阅上一篇关于如何伪造多维数组Bash two dimensional arrays的文章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37121956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档