我想寫一個腳本來計算運行匹配模板的進程的數量。如果它超過了一個硬編碼值,那麼做一些事情......其他的做別的。Bash腳本與基本的if/else和基於模式運行的進程的數量
我使用找出的進程計數:
ps ax | grep process_name | wc -l | sed -e "s: ::g"
如果上述命令的輸出大於15..it應回聲「完成」。否則,回聲「不完整」。
到目前爲止,我有這一點,但它不工作:
numprocesses=ps ax | grep sms_queue | wc -l | sed -e "s: ::g"
if [ $numprocesses -le "15" ] ; then
echo "Done."
else
echo "Not Complete."
fi
由於這個答案列出了除主要錯誤之外的各種改進,我想添加使用算術表達式的建議:'if(($ numprocesses> 15));那麼...'。這是更好閱讀。 – MForster 2010-11-05 07:04:32
@paxdiablo:你真的不覺得* string *「15」與你的* number * 15有什麼不同嗎? :) – 2010-11-05 07:53:58
@MForster:這比'[[]]'更便於攜帶。我建議使用簡單的舊'''又名'測試'。 – 2010-11-05 07:55:14