【问题标题】:Bash Arrays - Couldn't extract the assigned variable from the array(2D)Bash 数组 - 无法从数组中提取分配的变量(2D)
【发布时间】:2013-05-16 17:44:10
【问题描述】:

我使用下面的数组赋值来模拟一个二维数组:

for((i=0;i<2;i++))        
do        
    for((j=0;j<3;j++))        
    do        
        read TWOD$i[$j]        
    done        
done < hi.txt

文件hi.txt 包含以下几行:

 1    
 2    
 3    
 4     
 5    
 6

如果我使用echo ${TWOD0[2]},我可以打印值2,但如果我使用变量作为第一个索引,bash 会抛出语法错误bad substitution

 for((i=0;i<2;i++))    
 do    
     printf "%s\n" "${TWOD$i[2]}"    
 done

有没有办法使用变量作为第一个索引从数组中提取元素?

【问题讨论】:

标签: arrays bash multidimensional-array


【解决方案1】:

你可以使用indirect expansion

row="TWOD$i[2]"
printf "%s\n" ${!row}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多