注意shell脚本中ps -ef|grep的坑

脚本中有这样一行代码

PID=`ps -ef | grep live-admin | grep -v grep | awk '{print $2}'`
echo ${PID}
if [ -n "${PID}" ]
then
    kill -15 ${PID}
fi

然后我的脚本名称是 live-admin.sh

结果是echo总是打印两个PID,然后脚本执行失败,但把ps那一行代码单独拷贝出来执行是只有一个PID的

原因是ps -ef | grep live-admin | grep -v grep | awk '{print $2}'这行代码中的live-admin和脚本名称重名了,所以会查询到两个PID

把脚本名称修改成其他不重名的就成功了

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页