あなたは、bash スクリプトを調べることに興味があるかもしれません。
シェルから直接 for ループでコマンドを実行できます。
具体的に言及した数値を生成する単純なループ。たとえば、シェルから:
user@machine $ for i in {22..680} ; do
> echo "filename${i}.bmp"
> done
filename22.bmp
これにより、 からまでのリストが表示されfilename680.bmp
ます。これは、あなたが言及した範囲の反復を処理するだけです。これは、ゼロ パディング番号をカバーしていません。これを行うには、 を使用できますprintf
。printf
構文はprintf format argument
. $i
前のループの変数を引数として使用し%Wd
、W が幅である形式を適用できます。W プレースホルダーを前に付けると、使用する文字が指定されます。例:
user@machine $ for i in {22..680} ; do
> echo "filename$(printf '%04d' $i).bmp"
> done
上記$()
では、変数として機能し、コマンドを実行して、事前定義された値とは反対の値を取得します。
これで、指定したファイル名が表示されます。それを実際のアプリケーションに適用できます。
user@machine $ for i in {22..680} ; do
> ./filter "filename$(printf '%04d' $i).bmp" lower upper
> done
これは 1 行に書き直すことができます。
user@machine $ for i in {22..680} ; do ./filter "filename$(printf '%04d' $i).bmp" lower upper ; done
質問から注意すべきことの1つは、.exeファイルは通常COFF
、Linuxがフォーマットの実行可能ファイルを期待するフォーマットでコンパイルされますELF
。