工作中经常需要自己写一些脚本,最近遇到一个需求,需要通过脚本杀死一个进程。
在脚本编写过程中了解awk命令的使用。
#!/bin/bash
#检查参数是否输入
if [ $# == 0 ]; then
echo "请输入要杀死的进程标示字符串"
exit
fi
#通过ps命令获取符合条件的进程id
#awk命令的作用是排除命令是grep的和本身的命令,然后打印出pid
pids=`ps -ef | grep $1 | awk -v cmd="$0" '{if($8 != "grep" && $9 != cmd){print $2}}'`
if [ "$pids" == "" ]; then
echo "$1的进程不存在"
exit
fi
#pids可能是多行,所以需要循环处理杀死
for pid in $pids
do
kill -9 $pid
echo "$pid 已被杀死"
done