10,000 個のファイルとbash
、1 つのファイルを処理するスクリプトがあるとします。K
ここで、スクリプトのみを並行して実行して、これらすべてのファイルを同時に処理したいと考えています。私は(明らかに)ファイルを複数回処理したくありません。
どのように実装することをお勧めしbash
ますか?
10,000 個のファイルとbash
、1 つのファイルを処理するスクリプトがあるとします。K
ここで、スクリプトのみを並行して実行して、これらすべてのファイルを同時に処理したいと考えています。私は(明らかに)ファイルを複数回処理したくありません。
どのように実装することをお勧めしbash
ますか?
「(」と「)」を使用するだけで、スクリプトの一部を別のプロセスで簡単に実行できます。を追加する&
と、親プロセスは子プロセスを待機しなくなります。だからあなたは実際に使用します( command1; command2; command3; ... ) &
:
while ... do
(
your script goes here, executed in a separate process
) &
CHILD_PID = $!
done
また$!
、子プロセスの PID も表示されます。他に何を知る必要がありますか? 起動されたプロセスに到達したらk
、他のプロセスを待つ必要があります。これは次を使用して行われwait <PID>
ます。
wait $CHILD_PID
それらすべてを待ちたい場合は、 を使用してwait
ください。
システムを実装するには、これで十分です。