4

次のように、bashコマンドラインのスクリプトを次々に実行するという問題があります。

./process.sh data1.txt
./process.sh data2.txt
...
./process.sh dataN.txt

私がやりたいのは、これらをバックグラウンド ジョブとして開始することですが、常に 10 個しか実行していません。従来のプログラミング言語でこれを行うことができます (結合、待機スタイルの構成を使用することに非常に慣れています) 質問は、UNIX bash を使用してこれを行う方法です。

ありがとう。

4

2 に答える 2

2

xargs同様に使用できます:

$ for x in data*.txt; do echo "$x"; done | xargs -n 1 -P 10 ./process.sh

forループのさまざまなバリエーションが可能です: find、単純なecho data*.txtなど。ポイントは、標準入力でファイル名のリストを作成しxargsて読み取ることです。

于 2013-02-04T14:35:25.187 に答える