2016-05-10 63 views
0

在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²

+0

在bash中你的基本代碼失敗了,我需要'array [$ i,$ j,$ k]'。這對你有用嗎? –

+0

讀完你的名字後,我明白B ** 2,但它可能會混淆其他讀者。 –

回答

0

最後,我設法弄清楚什麼是錯的。 爲了記錄目的,我使用sh + x scriptname.sh 開始我的腳本,但該腳本使用ksh93。 所以正確的命令行啓動它是ksh93 + x scriptname.sh

對不起,這個愚蠢的錯誤。 B²