Bash 支持的
declare -A matrix
num_rows=4
num_columns=5
for ((i=1;i<=num_rows;i++)) do
for ((j=1;j<=num_columns;j++)) do
matrix[$i,$j]=$((i+j))
done
done
echo ${matrix[2,3]}
$ 5
【 在 charlesgoo (vikkie的好lg·穿越危机) 的大作中提到: 】
: 标 题: Re: 想问一个bash中array名中带变量的问题
: 发信站: 水木社区 (Mon Mar 16 10:35:06 2020), 站内
:
: bash不支持二维数组,不过支持稀疏数组,你这个可以变换一下角标,做成一维数组
: 例如每个array最大有n个元素,就直接把array{p}[m]定义成array[$((($p-1)*$n+$m))]
:
: 【 在 qiuyueliu (sceneryqiu) 的大作中提到: 】
: : 各位大神,问题是这样的:
: : 我在用bash写一个循环,里面有多个有array,比如arr1,arr2,arr3。想在array名上加个变量,比如用arr$i作为array名字。我还需要对这些array赋值,比如arr$i[0]=0。
: : 可是似乎赋值部分(i=1;arr$i[0]=0)无法成功,我试了很多种方法都不行,包括用间接引用。请问各位大神应该怎么写?如果bash不好实现,awk中可以实现吗?
: : ...................
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 123.122.48.*]
--
FROM 117.36.118.*