ディレクトリ内のファイル名をループして、それぞれに対して操作を実行しようとしています。ディレクトリの長さでbash doループを実行する
私が使用している場合、私はちょうど10のファイル名をループすることができる午前:
var=($(ls directory))
for k in {1..10}
do
echo ${var[$k]}
done
私に私のディレクトリに最初の10個のファイル名を与えます。しかし、私はそれらをすべてループしたい。
私が行う場合:私は一緒にすべてを組み合わせると
length=($(ls directory -1 | wc -l))
が、私はそう
(この例では、それは62です)長さを取得:
var=($(ls directory))
length=($(ls directory -1 | wc -l))
for k in {1..$length}
do
echo ${var[$k]}
done
を私はエラーを取得します'構文エラー:オペランドが必要です(エラートークン "{1..62}")
これを解決するには、 olutionは非常に高く評価されるでしょう!
[ブレース展開] (https://www.gnu.org/software/bash/manual/bash.html#Brace-Expansion)強力で限定的です。変数が展開される前にそれが起こっていることに注意してください。 '{1 .. $ length} 'を使用しようとすると失敗します。 –