用特定字符杀死进程的脚本


0

我有一个输出如下的命令:

# lostjobs

user1   12983     1  0 Feb04 ?        00:00:00 dbr UT:msmenu
user1   18253     1  0 Feb09 ?        00:00:00 dbr UT:msmenu
user2   22337     1  0 Feb09 ?        00:00:00 dbr UT:msmenu
user3   7164   7123  0 06:52 pts/0    00:00:10 dbr UT:msmenu

我知道我可以抓住那些我想要杀死的东西(带有问号的那些):

# lostjobs | grep ?

我需要知道的是我如何循环第二个结果并通过id(第二列)终止它们。我编写Linux脚本并不是很好,所以对我来说很容易。

谢谢你的帮助。

Answers:


0

解决方案是:

kill `lostjobs | awk '{ if ( $6 == "?" ) print $2 }'`

这会杀死所有人吗?
Toby Joiner

那会执行:kill 12983 18253 22337。尝试使用命令前缀echo来查看预览。
cYrus 2011年

好吧,要杀死用户,我们必须使用-9,所以我认为我可以做杀--9`losejobs | ...
Toby Joiner

当然,添加你喜欢的任何选项kill
cYrus 2011年

0

这应该也有效:

杀掉-9`losejobs | grep?| awk {'print $ 2'}`
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.