2

バックグラウンドでいくつかのコマンドを実行する BASH スクリプトがあるとします。ある時点で、彼らが仕事を終えたかどうかにかかわらず、すべてを殺したいと思うでしょう。

次に例を示します。

function command_doing_nothing () {
  sleep 10
  echo "I'm done"
}

for (( i = 0; i < 3; i++ )); do
  command_doing_nothing &
done

echo "Jobs:"
jobs

sleep 1

# Now we want to kill them

バックグラウンドで実行されている 3 つのジョブを強制終了するにはどうすればよいですか?

4

1 に答える 1

3

すべてのジョブを強制終了するには (このスクリプトが独自のシェル インスタンスで実行されている限り):

for x in $(jobs -p); do kill $x; done
于 2010-03-18T10:56:09.340 に答える