0

我使用下面的数组分配来模拟二维数组:

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

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

4

1 回答 1

2

您可以使用间接扩展

row="TWOD$i[2]"
printf "%s\n" ${!row}
于 2013-05-16T09:33:20.970 回答