0

したがって、bashスクリプトでforループを渡し、次の2つのパラメーターに応じて停止させます。

for (( x=1; x<= 50 -a $array_position -lt ${#array[@]}; x++ ))
do
    echo ${array[$array_position]}
    array_position=$((array_position+1))
done

私の意図は、これをループエコー50の連続する配列値[0]-[50]にすることですが、50のループ反復がすべて完了する前に、$array_positionが配列の最後に達した場合は停止します。

いつものように、どんな助けでもありがたいです!

4

2 に答える 2

1

問題は、-aまたはステートメント-ltにあります。forこれに変更します:

for (( x=1; x<= 50 && $array_position < ${#array[@]}; x++ ))

または、全体をさらに単純化するには、次のようにします。

for (( x=0;  x < 50 && x < ${#array[@]}; x++ ))
do
    echo "${array[$x]}"
done
于 2013-03-21T16:55:07.817 に答える
0

テストとして配列サイズを指定するだけでよく、50に達した場合はbreakステートメントを使用します。

for (( x=1; x<=${#array[@]}; x++ ))
do
    echo ${array[$array_position]}
    array_position=$((array_position+1))
    [ $x -eq 50 ] && break
done
于 2013-03-21T16:45:47.347 に答える