免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 14964 | 回复: 48

shell的困惑 [复制链接]

论坛徽章:
0
发表于 2006-04-05 16:29 |显示全部楼层
创建文件processctl如下:
procname=processctl

ifrunning=`ps -ef|grep -w $procname|grep -v "grep"|wc -l`
echo $ifrunning
if[$ifrunning!=0]; then
  echo "Shell is running!"
  sleep 10
else
  echo "Start!"
  sleep 10
fi


我不断地用%sh processctl执行上面的脚本为什么返回的$ifrunning值是2;而直接执行
%ps -ef|grep -w processctl|grep -v "grep"|wc -l 返回的值却始终是0呢?这是什么原因阿?

论坛徽章:
0
发表于 2006-04-05 16:56 |显示全部楼层
procname=processctl

`ps -ef|grep -w $procname|grep -v "grep"|wc -l`

if[$? -eq 0]; then
  echo "Shell is running!"
  sleep 10
else
  echo "Start!"
  sleep 10
fi

论坛徽章:
0
发表于 2006-04-05 17:24 |显示全部楼层
原帖由 SAS 于 2006-4-5 16:56 发表
procname=processctl

`ps -ef|grep -w $procname|grep -v "grep"|wc -l`

if[$? -eq 0]; then
  echo "Shell is running!"
  sleep 10
else
  echo "Start!"
  sleep 1 ...


我执行后返回的是Start
请问 if[$? -eq 0]; 是指 ps -ef|grep -w $procname|grep -v "grep"|wc -l 的结果为0吗?
我很奇怪为什么启动了这个进程但直接执行%ps -ef|grep -w processctl|grep -v "grep"|wc -l
结果总是0

论坛徽章:
0
发表于 2006-04-05 17:52 |显示全部楼层
通过设置退出状态(exit status)可以给呼叫环境(call environment)表明成功或失败。

测试退出状态因操作系统不同而变化。例如Unix的shell脚本变量$?,如果最后命令返回退出状态为成功,该变量值为0;如果该值大于0,退出状态表示为失败。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2006-04-05 17:53 |显示全部楼层
注意[]内各项间空格

论坛徽章:
0
发表于 2006-04-05 18:03 |显示全部楼层
使用方括号时,要注意在条件两边加上空格。

论坛徽章:
0
发表于 2006-04-05 18:13 |显示全部楼层
procname=processctl
`ps -ef|grep -w $procname|grep -v "grep"|wc -l`
if [ $? -eq 0 ];then
  echo "Shell is running!"
  sleep 10
else
  echo "Start!"
  sleep 10

还是不太明白。我加了空格但一直返回的是:
processctl[2]: 2:  not found
Start!

这是不是说明这个进程一直都未启动阿?

论坛徽章:
0
发表于 2006-04-05 18:15 |显示全部楼层
你试试看,$ps -ef|grep -w processctl
有几行?

论坛徽章:
0
发表于 2006-04-05 18:16 |显示全部楼层
我要实现的是:当进程已经存在是返回Shell is running!,如果不存在就返回Start!
调试成功后我再把 echo "Start!" 替换成我需要实现的功能。

论坛徽章:
0
发表于 2006-04-05 18:19 |显示全部楼层
如果进程processctl真的存在,试试看

if[$ifrunning!=0];
改为
if[ "$ifrunning" -ne "0" ];
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP