linux
shell
1、直接贴上脚本代码#!/bin/sh function PidFind() { PIDCOUNT=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0 | awk '{print $2}' | wc -l`; if [ ${PIDCOUNT} -gt 1 ] ; then echo 'There are too many process contains name[$1]' elif [ ${PIDCOUNT} -le 0 ] ; then echo 'No such process[$1]!' else PID=`ps -ef | grep $1 | grep -v 'grep' | grep -v '.sh' | awk '{print $2}'` ; echo 'Find the PID of this progress!--- process:$1 PID=[${PID}] '; echo 'Kill the process $1 ...'; kill -9 ${PID}; echo 'kill -9 ${PID} $1 done!'; fi } #close testdemoPidFind testdemoexit 1下面对这个脚本进行简单解析一下,方面理解
2、这一句主要是获取跟指定名称一样的进程个数,PIDCOUNT=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0 | awk '{print $2}' | wc -l`;
3、ps 是获取进程的一个常用命令ps -ef 意思是获取所有的进程
4、grep 命令是十分常用的一个脚本命令grep $1 表示过滤掉那些不包含指定名称的进程grep -v 'grep' 表示过滤掉那些包含'grep'的进程grep -v $0 表示过滤掉这个脚本本身的进程
5、awk 这个命令用的可能少一些,awk 一般是用来打印字段的,过滤掉一些不需要的字段awk '{print $2}' 只打印第二个字段的,也就是进程ID
6、wc 这个命令用的也少,一般是用来统计行数的wc -l 统计行数
7、经过这么一番介绍,剩下的命令都是比较好理解的了${PIDCOUNT} 是获取变量的值 if [ ${PIDCOUNT} -gt 1 ] ; then 是一个简单的if判断
仅供学习参考