杀死具有给定名称的procces并显示PID

时间:2017-11-22 00:26:05

标签: shell unix

所以这里我有一篇文章,我需要制作一个命令,我用一个给定的名字杀死所有进程然后当我输入它时,它将显示进程的pid并使用该名称然后将其杀死我需要使用tr -scut
现在这就是我做的事情

echo " What do you want to kill? "
read pr
ps -fA| grep -c $pr | grep -v grep | kill -9 $(ps aux | grep -e $pr | awk '{print $2}')

1 个答案:

答案 0 :(得分:1)

for i in $(ps -ef |grep $pr |grep -v grep |tr -s ' ' |cut -f2 -d' ')
    do
        kill $i && echo killed $i
    done

tr -s ' '会将重复的空格挤压到一个cut可用作字段分隔符的空间中。

更好更容易使用pgrep

kill $(pgrep $pr) && echo done || echo not done

以下是手册页:man pgrep