shell 判断进程是否存在,大家帮忙看看。解决方案

shell 判断进程是否存在,大家帮忙看看。。
我又一个用C写的代码,通过.sh文件来调用,在调用前判断进程中是否存在,存在则等待,
while :  
do 
  pro=$(ps -ef |grep "mypro" |grep -v "grep")
  echo $pro
  if [ "$pro" ] ; then
  sleep 20
  else
  break
  fi
done

# mypro是我得C语言代码的
# 调用C写的文件省略。。。。

网上找了个这样的例子,
现在的情况是,无论进程并不存在mypro(我没在跑), 都会进sleep 20 这个分支,怎么会这样,求高手指教

还有可能是版本的原因,不支持pgrep的命令,所以这种解决办法,不是我想要的,
谢谢!

------解决方案--------------------
Learning.the.bash.Shell.3rd.Edition.chm
------解决方案--------------------
sh的名字与c程序的相同 这个是问题所在。
------解决方案--------------------
直接这样试试

if ps -ef |grep "mypro" |grep -v "grep"
then
echo "here"
fi