脚本代码如下:
pid=`cat $2` function status_job(){ pcount=`ps -ef |grep $pid |grep -v grep |wc -l` if [ $pcount -ge 1 ] then pids=`ps -ef | grep "EntryPoint" | grep -v grep | awk '{print $2}'` arr=$(echo $pids|tr " " " ") for x in $arr ; do if [ "$x" == $pid ] ; then echo "任务还在运行..." fi done fi } function kill_job(){ kill -9 $pid } if [ "$1" == "status" ] then status_job fi if [ "$1" == "kill" ] then kill_job fi
其中:grep -v grep 显示查询结果中m没有匹配grep的行,即过滤到grep搜索进程的进程id,wc -l是判断包含该进程id的进程有几个,之后再借助进程id进程匹配。
再例如:
history | grep "mysql" |grep -v "netstat"
查看历史运行过的命令中包含mysql但是不包含netstat的所有历史命令