我有一个输出如下的命令:
# 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 编写脚本,所以请对我宽容一点。
谢谢你的帮助。
答案1
一个解决方案是:
kill `lostjobs | awk '{ if ( $6 == "?" ) print $2 }'`
答案2
这也应该有效:
kill -9 `lostjobs | grep ? | awk {'打印 $2'}`