今天被一个命令难住了。
需求是这样,有一个项目要反复杀进程。
每次执行 ps -e | grep xxxx,然后再kill -9 pid
这样的反复输入就比较麻烦,就想着找个脚本,直接搞定。
不懈努力找到了这个:
ps -e |grep xxxxx |grep -v grep |awk '{print $1}' | xargs kill -9
经过验证,执行ps -e |grep xxxxx |grep -v grep |awk '{print $1}'
能够得到正确的pid 但是加上 xargs kill -9就会报错:
spawnvpe kill: No such file or directory
但是不用kill,用别的命令就不会有类似的错误,说明xargs没有错误。
后来搜了一下发下有一种说法:
xargs 好像是不支持cd的,大概是因为cd不再path目录中的原因。
xargs: cd: No such file or directory_HockerF的博客-CSDN博客
用which看了一下果然是kill没有在path里面,path里面有的 cat 等命令就可以。
解决办法倒也简单:
kill -9 `ps -e | grep xxx |grep -v grep |awk '{print $1}'`
要注意kill -9后面那个是反引号,不是单引号,输入成单引号就不可以了!
https://blog.csdn.net/qq_34948450/article/details/125132544
刚开始工作的时候linux基础没好好学,感觉够用就行了,但实际还是不行
以后多总结一下把!!