我有一个简单的bash脚本:
(睡眠5;回声A;睡眠100 )&
(睡眠7;回声'B';睡眠100 )&
我想杀死这两个进程后的第二个进程打印'B‘和couse第一个进程打印'A’。(可能不是回声-可能是第一次睡觉后的其他标签。)怎么做?
发布于 2011-03-23 18:27:43
可能是这样的
( sleep 5; echo 'A'; sleep 100 ) &
export Last=$!
( sleep 7; echo 'B'; kill-9 $Last; sleep 100 ) &发布于 2011-03-23 19:15:56
试试这个:
jobs -p | xargs killjobs -p从这个shell窗口打印所有后台作业的进程ID。
xargs将它在stdin上读取的内容传递给您提供的程序。
kill向您给出的每个进程ID发送SIGTERM。
但是,请注意,这将杀死从这个shell开始的所有后台作业,而不仅仅是最后两个。
如果您知道您想杀死最近刚开始的X作业,请使用以下命令:
jobs -p | tail -n [number of jobs] | xargs killhttps://stackoverflow.com/questions/5409719
复制相似问题