1. ホーム
  2. linux

[解決済み】bashで複数のバックグラウンドコマンドを一行で実行するには?

2022-04-03 07:29:44

質問

普段はこのような感じで複数のコマンドを実行しています。

sleep 2 && sleep 3

または

sleep 2 ; sleep 3

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

sleep 2 & && sleep 3 &

は機能しません。また &&;

何か方法があるのでしょうか?

どのように解決するのですか?

正確には、どのように実行させたいのですか?もし、バックグラウンドで起動し シーケンシャル ということであれば、以下のようになります。

{ 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で、同じタスクを達成するために、時には微妙な違いを持ちながらも、多数の異なるテクニックが存在することがよくあります。