system命令返回奇怪的值

时间:2014-05-29 21:27:35

标签: bash shell debian

我有这个脚本

 #!/bin/bash
 npid=$(pgrep -f procname | wc -l)
 echo $npid
 if [ $npid -lt 3 ];then
  service procname start;
 fi

procname正在运行时,它会正常显示$npid的正确数字。当没有procname运行时,它会失败。它应该返回零,但它返回npid=3,正好是3.我也看到同样的问题ps auxw | grep procname | grep -v grep | wc -l

一些简单的错误我只是想不通,有什么建议吗?

* 编辑

# This returns nothing if therisn't a process name poopit running
pgrep -f poopit 


# In the case when no process running, below returns zero if typed on a bash cmd line 
pgrep -f poopit | wc -l 

# If running,
pgrep -f poopit | wc -l
17 
# If running, the script $npid shows 
19

0 个答案:

没有答案