shell 脚本根据名称查找进程id会多出来两个id号
今天要写一个shell脚本,要用到根据名称查找id的功能,百度了一下
pid=`ps -ef | grep "$filename" | grep -v "grep" | awk '{print $2}'`
上面这个语句就可以实现功能。
但是我运行脚本之后,发现进程id有3个 ,一个是要找的id,其他两个不是需要的,而且每次都不一样。
排查了一下,发现是把当前这个shell 脚本也计算在内了。
因为 当前这个脚本需要输入参数,参数名跟要搜索的进程名称有相同的部分,导致了这个问题。
解决方法:忽略当前的shell脚本即可
pid=`ps -ef | grep "$filename" | grep -v "cgroup" | grep -v "grep" | awk '{print $2}'`
原文链接:https://blog.csdn.net/qq_36296997/article/details/81563204