バッシュ「forループ」

バッシュ「forループ」

私がそうすると、

for ((i=0; i<"${ARRAY}"; i+=2))
do
    echo $i
    echo ${ARRAY[$i]}
done

echo $iまた、期待どおりにecho ${ARRAY[0]}動作しますが、$iイテレータとしてi空白行のみが表示されます。 forループを正しく書くには?

答え1

以下のスクリプトを試してください。動作する必要があります。

declare -a array=('1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11')
for ((i=0; i<=${#array[@]}; i+=2 )) ;
  do
     echo "Current Iterator i value:" $i
     echo "Array element at this position:" ${array[$i]}
 done

スクリプト出力

Current Iterator i value: 0
Array element at this position: 1
Current Iterator i value: 2
Array element at this position: 3
Current Iterator i value: 4
Array element at this position: 5
Current Iterator i value: 6
Array element at this position: 7
Current Iterator i value: 8
Array element at this position: 9
Current Iterator i value: 10
Array element at this position: 11

説明する

私は最初に11個の要素を含む配列を宣言しました。

あなたの質問によれば、配列で利用可能なすべての要素を繰り返したいと思います。

${#array[@]}- 配列の長さを決定するために使用されます。

${array[$i]}- 特定のインデックスの要素を印刷するために使用されます。

関連情報