2016-05-10 11 views
0

In einem ksh93-Skript versuche ich ein zweidimensionales Array zu verwenden. Ich muss jede Zelle mit einer Zeichenfolge "B1" initialisieren. Dies ist Teil meines Code:ksh93 "Index außerhalb des Bereichs" Fehler bei der Array-Initialisierung

#!/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 

wenn ich dies ausführen, bekomme ich diesen Fehler und ich kann nicht herausfinden, warum:

+ 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 

Ich habe auch versucht, diesen grundlegenden Code als Test und es funktioniert gut:

#!/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 für Ihre Hilfe. B²

+0

In Bash schlägt Ihr Basiscode fehl und ich brauche 'Array [$ i, $ j, $ k]'. Geht das für dich? –

+0

Nach dem Lesen Ihres Namens verstehe ich B ** 2, aber es kann andere Leser verwirren. –

Antwort

0

Schließlich gelang es mir herauszufinden, was los war. Zum Zwecke der Protokollierung, ich begann mein Skript mit sh + x Skriptname.sh aber dieses Skript verwendet ksh93. so die richtige Befehlszeile, um es zu starten ist ksh93 + x scriptname.sh

Sorry für diesen dummen Fehler. B²