免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1436 | 回复: 0
打印 上一主题 下一主题

[Linux] 简单的shell, 输出有点奇怪, 高人给看看 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-12 19:04 |只看该作者 |倒序浏览
Shell脚本如下:

#!/bin/ksh
  SCRIPTNAME=`/bin/basename $0`;
  SID=$1;
  proccnt=`ps -ef |grep $SCRIPTNAME |grep $SID |grep -v grep |wc -l`;
  echo "output from: ps -ef |grep $SCRIPTNAME |grep $SID |grep -v grep |wc -l"
  ps -ef |grep $SCRIPTNAME |grep $SID |grep -v grep |wc -l
  echo "echo proccnt"
  echo $proccnt;
  if [ $proccnt -gt 1 ]
  then
    echo "Another $SCRIPTNAME is running. Abort."
    proccnt=`ps -ef |grep $SCRIPTNAME |grep $SID`
    echo "$proccnt"
    exit;
  else
    echo 'proccnt<=1';
  fi

输出如下:

svr:elcaro /tmp/test1.sh eddy
output from: ps -ef |grep test1.sh |grep eddy |grep -v grep |wc -l
1
echo proccnt
2
Another test1.sh is running against the same DB. Abort.
elcaro   22231 18860  3 05:48 pts/0    00:00:00 /bin/ksh /tmp/test1.sh eddy
elcaro   22244 22231  0 05:48 pts/0    00:00:00 /bin/ksh /tmp/test1.sh eddy
svr:elcaro

为何直接ps出来的值是1, 赋给一个变量之后就变成2了呢.
高手赐教.

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP