我想在bash腳本中編寫一段代碼來檢查程序是否已經在運行。 條是否正在運行防止grep在輸入不匹配時返回錯誤
foo=`ps -ef | grep bar | grep -v grep`
的
grep -v grep
部分是確保「的grep條」不考慮PS爲了尋找我有以下結果
當bar沒有運行時,foo是空的。但我的問題在於腳本具有這樣的事實:
set -e
這是一個標誌,在某些命令返回錯誤時終止腳本。 事實證明,當bar未運行時,「grep -v grep」與任何內容都不匹配,並且grep返回錯誤。我嘗試使用-q或-s但無濟於事。
有沒有解決方案? THX
太好了!這解決了它。 Thx :) –
第一個更好,因爲它也適用於「-o pipefail」,另一個好的快速設置,類似於「-e」。 –
如果'grep'返回1表示沒有匹配,這會很好,但如果返回2(例如錯誤)會發生什麼? –