bash で複数のバックグラウンド コマンドを 1 行で実行するにはどうすればよいですか? 質問する

bash で複数のバックグラウンド コマンドを 1 行で実行するにはどうすればよいですか? 質問する

通常、次のように複数のコマンドを実行します。

sleep 2 && sleep 3

または

sleep 2 ; sleep 3

しかし、1 つのコマンド ライン コマンドから両方をバックグラウンドで実行したい場合はどうすればよいでしょうか?

sleep 2 & && sleep 3 &

&&は機能しません。;

それを実行する方法はありますか?

ベストアンサー1

具体的にどのように実行したいですか?バックグラウンドで開始して順番に実行したい場合は、次のようにします。

{ sleep 2; sleep 3; } &

sleep 3成功した場合にのみ実行する場合はsleep 2、次のようにします。

sleep 2 && sleep 3 &

一方、バックグラウンド並行して実行したい場合は、代わりに次のようにします。

sleep 2 & sleep 3 &

また、2 つの手法は次のように組み合わせることもできます。

{ sleep 2; echo first finished; } & { sleep 3; echo second finished; } &

Bash は bash なので、同じタスクを実行するためにさまざまな手法が使用されることがよくありますが、それらの手法には微妙な違いがある場合もあります。

おすすめ記事