通常、次のように複数のコマンドを実行します。
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 なので、同じタスクを実行するためにさまざまな手法が使用されることがよくありますが、それらの手法には微妙な違いがある場合もあります。