これらの複数のスクリプトを定期的に実行する必要がある場合は、それらを呼び出すシェル スクリプトを作成することを検討してください。または、makefile を作成することもできます。
さまざまなスクリプト間に依存関係があり、「<em>foo
の前に実行する必要がある」と表現する必要がある場合は、makefile を使用する必要がありますbar
。プログラムは、make
これらの依存関係を満たす正しい順序を自動的に見つけます。また、開始する並列ジョブの数を指定することもできますmake
: make -j 4
4 つの並列ジョブの場合。
メイクファイルは、依存関係と本体を持つレシピで構成されます。本文では、各行がシェル コマンドと見なされます。コマンドは端末に出力されてから実行されます。印刷を抑制するには、コマンドの前に を付け@
ます。例:
foo: bar something_else
<tab >@ echo "I am about to execute the foo command:"
<tab >perl /some/path/foo.pl
bar:
<tab >@ echo "I am about to execute the bar:"
<tab >perl /some/path/bar.pl
something_else
<tab >perl /some/path/something.pl | perl /some/path/else.pl >/some/path/output.txt
をリテラルの<tab >
タブ文字に変更する必要があります。空白による意図は機能しません。
このソリューションの欠点は、makefile が単純なシェル スクリプトの 3 倍の長さになることです。利点は、必要な並列ジョブの数を直接指定できることです (これにより、アイドリングをあまり行わずに負荷が均一になります) 。Klas Lindbäckが回答で提案したように、スクリプトを手動で並べ替える必要はありません。make
実際の依存関係を指定するだけです。