2012-04-12 7 views
0

配列に値を入れるためのシェルスクリプトがあります。スクリプトは私にとってうまくいっています。問題は、配列をforループの中に置くと(doとdoneの間)、配列長を出力しようとしたとき、つまり実行後に値が更新されないということです。ここには同じコードがあります。私が最後に配列の長さを印刷しようとするすべてのヘルプが理解されるであろう 1として配列値がシェルスクリプトで更新されない

function _read_value 
{ 
    count=0 
    array[0]="hi" 
    for ///some condition 
    do 
     count++ 
     array[count]="hello" 
    done 
    echo ${#array[@] 
} 

、それは長さを示しています。

+0

私はこれに慣れていないんだけどん、あなたはfor-loopを閉じますか?またはdo-block? – p0rter

+0

ご迷惑をおかけして申し訳ありませんが、whileループは使用していません。しばらくしてやりました。 – parameswar

+0

あなたはdo-blockを開いて閉じますが、あなたのプログラムはあなたのwhileが終わるところを知っていますか?私のためには、 "エコー"もあなたのwhileループにあるように見えます。 – p0rter

答えて

0

私はあなたのスクリプトとその更新値のいくつかの小さな変更を加え、カウントも細かい付属しています。(私はカウント増分で、ループに変更を行った)

#!/bin/bash 
function read_value 
{ 
    count=0 
    while [ $count -le 5 ] 
    do 
     array[count]="hello" 
     count=`expr $count + 1` 
    done 
    echo ${array[@]} 
    echo ${#array[@]} 
} 

read_value 
+0

素晴らしい!出来た !ありがとうございました ! – parameswar