如何用shell语句(不用人为判断)kill掉进程列表中所有进程名为aaa的进程?

blueflame 2003-11-19 11:22:09
该如何写?最好能用一条语句实现,谢谢!
...全文
114 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rexp 2003-11-21
  • 打赏
  • 举报
回复
grep后面增加一个-w 选项就可以避免选中aaal之类的进程了。
fxiangh 2003-11-19
  • 打赏
  • 举报
回复
我的更简单
ps -ef|grep aaa|sort -nr +X |awk '{if(int($X)>0) printf"kill -9 %s\n",$X}'|sh - # "X"为pid的字端顺序号
# sort -nr +X 用于倒序排列
# int($X)>0 用于判断输入的pid的合理性

linaxing 2003-11-19
  • 打赏
  • 举报
回复
一条语句不好实现吧:
#!/bin/sh

proglist=`ps -ef|grep aaa|grep ^grep`
for progname in $proglist
do
kill -9 $progname
done

这个shell大多数情况下可以正确运作,要想精确匹配用awk
blueflame 2003-11-19
  • 打赏
  • 举报
回复
-_-!
居然忘了用……|/bin/sh
呵呵,谢谢楼上两位,但两位的方法都不能正确处理如aaa1一类的进程
我的做法:
ps -ea|grep aaa|awk '$4=="aaa"{print "kill -9 " $1}'|/bin/sh

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧