Bashですべてのタスクを終了するには?

Bashですべてのタスクを終了するには?

だから、次のように動作するものがあります。

sleep 30 | sleep 30 &

それについて考える自然な方法は次のとおりです。

kill `jobs -p`

しかし、これは最初のものだけを殺し、sleep2番目は死ぬことはありません。

これを行うと、両方のプロセスが終了します。

kill %1

ただし、実行中のジョブが多い場合は、最大1つのジョブが終了します。

名前は同じですが、このシェルで実行されていないプロセスを終了しないでください。

ベストアンサー1

xhienneの答えの短いバージョンですが、純粋なbashではありません。

jobs -p | xargs -I{} kill -- -{}

おすすめ記事