重定向ps命令的输出,获取进程ID并使用shell脚本终止该进程

Din*_*esh 5 shell

我想编写一个shell脚本来查找给定用户的运行进程,并通过获取相应的进程ID来终止进程.

就像是

ps -ef | grep dinesh
Run Code Online (Sandbox Code Playgroud)

在此之后,我得到如下输出

dinesh 19985 19890  0 11:35 pts/552  00:00:00 grep dinesh
Run Code Online (Sandbox Code Playgroud)

这里19985是进程ID.我想杀死那个过程.

如何使用脚本实现此目的?

我必须解析ps命令输出并获取进程ID

提前致谢.

nab*_*nab 16

kill `ps -ef | grep dinesh | awk '{ print $2 }'`
Run Code Online (Sandbox Code Playgroud)


小智 5

如果字符串定义了多个进程'dinesh'怎么办?grep进程本身怎么样?这是一个更完整的答案

ps -ef | grep dinesh | grep -v grep | awk '{print $2}' | xargs kill -9

  • 简短:`ps -ef | awk'/ d [i] nesh/{print $ 2}'`方括号是一个巧妙的技巧,以避免awk进程本身从ps输出 (2认同)