4

10,000 個のファイルとbash、1 つのファイルを処理するスクリプトがあるとします。Kここで、スクリプトのみを並行して実行して、これらすべてのファイルを同時に処理したいと考えています。私は(明らかに)ファイルを複数回処理したくありません。

どのように実装することをお勧めしbashますか?

4

3 に答える 3

5

「(」と「)」を使用するだけで、スクリプトの一部を別のプロセスで簡単に実行できます。を追加する&と、親プロセスは子プロセスを待機しなくなります。だからあなたは実際に使用します( 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ください。

システムを実装するには、これで十分です。

于 2013-06-29T17:26:04.957 に答える