ここでは引用符が必要なスタックオーバーフローについて読みましたが、引用符を追加しましたが、それは助けになりませんでした。整数式が必要です:Bash
array_length=${fileNames[@]}
COUNTER=0
while [ "$COUNTER" -lt "$array_length" ]; do
エラーが発生します。助けてください。
ここでは引用符が必要なスタックオーバーフローについて読みましたが、引用符を追加しましたが、それは助けになりませんでした。整数式が必要です:Bash
array_length=${fileNames[@]}
COUNTER=0
while [ "$COUNTER" -lt "$array_length" ]; do
エラーが発生します。助けてください。
array_length=${fileNames[@]}
が予想される動作については
array_length=${#fileNames[@]}
されている必要がありますbashに完全に新しい、あなたのwhileループは次のようになります。#
とそれを前に置くながら
while [ "$COUNTER" -lt "$array_length" ]
do
.
#do something
.
((COUNTER++)) # Equivalent to COUNTER=COUNTER+1
done
${fileNames[@]}
は、配列全体に展開しますあなたに要素の数を与えます。
Sidenotes:
1.しばらくループ内COUNTER
をインクリメントすることを忘れないでください。
2.通常はシステム用に予約されているCOUNTER
のような大文字の変数を避けてください。
を参照してくださいありがとう、私は5分でそれを受け入れます。 "$ COUNTER + 1" -lt "$ array_length" これはまだ何か大きなコンセプトがあれば、私は新しい質問を開きますが、これはエラーを返します。 –
@BhavyaArora: 'counter + 1'は' counter'をインクリメントしません。 – sjsam
私はここでそれを増やしたくない、ちょうど次の数字とそれを比較したい。エラーを取り除くにはどうしたらいいですか?また、カウンターを増やすには? let counter = counter + 1? –
前の質問のあなたの言及は、文脈を助けるためのリンク(あなたは質問を編集し、それを修正することができます。しかし、あなたが示している短い部分を見るだけで、ファイル名のリストに 'array_length'という変数を設定してから、それを数字として使うことができます。 'fileNames'に要素が1つしかない場合(' [0] 'を使用していない場合)、それが数値である場合、testの呼び出しはうまく動作しません。 – MAP
申し訳ありませんが、私はもう一度それを見つけようとします。私はそれを閉じたので私を助けなかった。 –
[bash arrays](http://tldp.org/LDP/abs/html/arrays.html) –