Shell中 |和||,&和&&用法

1.| 和 ||
|:输入了如下指令:command0 | command1,则command0的输出流入到command1中
||:与&&的作用正好相反,是在执行到成功的指令时停止后续指令的执行。command0 || command1,如果command0执行成功,则command1不再执行。如果command0执行失败,则继续执行command1

2.& 和 &&
&:输入了如下指令:command0 &,则执行command0并使其进入后台。;

&&:输入了如下指令:command0 && command1,则先从command0开始执行。如果command0执行失败,则不再继续执行command1。如果执行command0执行成功,则继续执行command1。
所以,&&的作用是在执行到失败的指令时停止后续指令的执行。

“Exec exit status not zero” 说明进程没有正常结束,经过排除,问题锁定在:
ps -ef |grep tomcat-center |awk '{print $2}'|xargs kill -9 1>/dev/null 2>&1 | exit 0

分析:
ps -ef | grep tomcat-center 查询到的是两条记录(如下图):第一条是我们要查找并关闭的,第二条是查找进程自身。


当管道进行到kill的时候,两条进程一同被杀死,而Jenkins仍然在等待查找进程自身返回exit 0,事实上它永远等不到了,因为进程都没了,

最终会报异常"Exec exit status not zero"
解决:

使用“grep -v grep”排除掉它自身就可以

原来:ps -ef |grep tomcat-center |awk '{print $2}'|xargs kill -9

改后:ps -ef |grep tomcat-center | grep -v grep |awk '{print $2}'|xargs kill -9
————————————————
版权声明:本文为CSDN博主「wangfei0904306」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangfei0904306/article/details/72780617


————————————————
版权声明:本文为CSDN博主「望长安于日下」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26884501/article/details/104185364

原文地址:https://www.cnblogs.com/cheyunhua/p/14593463.html