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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM