同様の質問がいくつかありましたが、私の問題は「複数のプログラムを並行して実行する」ことではありません。これは、parallel
またはで簡単に実行できますxargs
。
Bash 関数を並列化する必要があります。
次のようなコードを想像してみましょう。
for i in "${list[@]}"
do
for j in "${other[@]}"
do
# some processing in here - 20-30 lines of almost pure bash
done
done
一部の処理では、外部プログラムへの呼び出しが必要です。
いくつか (4-10) のタスクを実行したいと思います$i
。$list の要素の総数が 500 を超えています。
ループ全体for j ... done
を外部スクリプトに入れ、このプログラムを並行して呼び出すことができることはわかっていますが、機能を 2 つの別々のプログラムに分割せずに実行することは可能ですか?