1

プログラムが実行されるたびに、異なるファイルを入力としてコマンドラインから複数回実行する必要がある実行可能ファイルがあります。私は UNIX を使用しており、ファイルはtestsプログラムと同じディレクトリにあるディレクトリに保存されています。

次のようなことをしたい:

for i in {1..50} ; do ./program ; done

実行するたびに異なるファイルを入力として使用することを除いて。したがって、ディレクトリ内のすべてのファイルを反復処理することは、tests私がやりたいことですよね?

これについてどのように/何をグーグルするかはよくわかりません(すでに試しましたが)。

洞察はありますか?ありがとう!

4

1 に答える 1

0

これを行うには多くの方法があります。非常に合理的なアプローチの 1 つは、プログラムをより UNIX に似たものに書き直し、複数のファイル名を末尾の引数として受け入れて、次のように単純に呼び出すことができるようにすることです。

./program tests/*

プログラムを変更せずに、次のいずれかを行うこともできます (優先度の高い順に):

find tests -exec ./program {} \;
for f in tests/*; do ./program "$f"; done
ls -f tests | while read f; do ./program tests/"$f"; done  # Use caution

上記の 3 番目の例のように使用することに反対する人が多いことに注意してくださいls。名前に改行が含まれるファイルがあると正しく動作しない可能性があるためです。を使用することで、これらの懸念を回避できますfind

于 2013-04-26T11:35:05.967 に答える