我在寫一個unix shell腳本,需要檢查當前是否有正在運行的進程在其目錄中有「xyz」。如果是,繼續下一個命令並顯示文本,如「找到它」。在unix中如何找出進程是否正在運行並返回true/false?
如果不是,請不要繼續顯示「未找到過程」等文本。
我想是這樣的:
if ps -ef | grep xyz
then
echo "XYZ Process Found!"
else
echo "XYZ Process Not Found!"
fi
但它只是帶我「發現過程」即使沒有XYZ過程的過程和顯示。
這隻適用於我將!= 0更改爲!= 1,因爲在ps -ef中,即使沒有任何匹配,它也會爲每組進程返回一個頭。 – user1508682
@ user1508682我在這裏先測試了一下,當我使用!= 1時,我得到了「Process Found」。'ps --version' outputs * procps-ng version 3.3.9 * here。你有沒有相同的? –
太多的UUO * .. http://www.smallo.ruhr.de/award.html#wc'if ps -ef | grep -q [x] yz;然後...其他... fi'應該工作.. – anishsane