Bash 如何杀死所有异步进程

Bash 如何杀死所有异步进程,bash,process,asynchronous,command,kill,Bash,Process,Asynchronous,Command,Kill,假设我们有一个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 功

假设我们有一个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
功能命令\u不执行任何操作(){
睡眠10
回声“我做完了”
}
(i=0;i<3;i++);做
命令你什么也不做&
完成
回应“工作”:
工作
睡眠1
#现在我们要杀了他们

如何终止在后台运行的3个作业?

终止所有作业(只要此脚本在其自己的shell实例中运行):


请不要在不必要的时候杀死-9。
for x in $(jobs -p); do kill $x; done