В сценарии ksh93 я пытаюсь использовать массив из двух измерений. Мне нужно инициализировать каждую ячейку строкой «B1». Вот часть моего кода:Ошибка ksh93 «индекс вне диапазона» в инициализации массива
#!/bin/ksh93
num_cols=192
echo Number of cols : $num_cols
#init matrix to blank
echo initialize the matrix
i=1
while [ $i -le $num_rows ]; do
j=1
while [ $j -le $num_cols ]; do
matrix[$i][$j]="B1"
echo $matrix[$i][$j]
j=$(($j+1))
done
i=$(($i+1))
done
когда я исполню это, я получаю эту ошибку, и я не могу понять, почему:
+ num_cols=192
+ echo echo Number of cols : 192 echo Number of cols : 192
+ echo initialize the matrix initialize the matrix
+ i=1
+ [ 1 -le 15 ]
+ j=1
+ [ 1 -le 192 ]
+ matrix2html.sh[38]: matrix: subscript out of range
Я также попробовал этот базовый код в качестве теста и он работает нормально:
#!/bin/ksh93
for i in 1 2 3
do
for j in 4 5 6
do
for k in 7 8 9
do
array[$i][$j][$k]=$((i + j + k))
# echo ${array[$i][$j][$k]}
done
done
done
for i in 1 2 3
do
echo ${array[$i][4][7]}
done
Thx для вашей помощи. B²
В bash ваш базовый код завершается с ошибкой, и мне нужен 'array [$ i, $ j, $ k]'. Это работает для вас? –
После прочтения вашего имени я понимаю B ** 2, но это может смутить других читателей. –