求教一个简单的shell编程问题

pdw2009 2010-05-18 10:45:23
#!/bin/sh
counter=`ps -ef | grep xxxdomain | grep -v grep | wc -l`
echo $counter
if [ $counter -ge 0] ; then
echo "呵呵可以启动"
else
echo "有多个ecsdomain进程同时运行请通知管理理停掉相关进程"
fi


==================================
运行环境:
aix 5.x

程序目标:

保证程序只有一个进程在运行,如果当前系统中有进程运行了,就不能再启运行该程序

为什么老报:
0403-057 Syntax error at line 8 : `fi' is not expected.

谢谢,好久没折腾这类东西了
...全文
290 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
freetstar 2010-05-19
  • 打赏
  • 举报
回复
奇怪哈。。我的按lz的可以跑得通。。。和brookmill一样都可以
brookmill 2010-05-19
  • 打赏
  • 举报
回复
写中文不会有问题吧?要不要先改成纯英文试试?
steptodream 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pdw2009 的回复:]

解决了,是因为我用UE编辑器的问题,要把DOS的格式转换成Unix的格式才能解决。谢谢!
[/Quote]
这样的问题 要常注意哦 如果在别环境下写的东西 到linux下第一件事 就是先转换一下
我也遇到过
pdw2009 2010-05-19
  • 打赏
  • 举报
回复
解决了,是因为我用UE编辑器的问题,要把DOS的格式转换成Unix的格式才能解决。谢谢!
pdw2009 2010-05-19
  • 打赏
  • 举报
回复
晕菜,aix下运行的shell是/usr/bin/ksh
一品川 2010-05-19
  • 打赏
  • 举报
回复
顶2楼了
zzytiger 2010-05-19
  • 打赏
  • 举报
回复
厄..刚在Mac下试了一下..楼主 改过之后的就可以运行了..
brookmill 2010-05-18
  • 打赏
  • 举报
回复
我用bash,运行4楼的没有错误。
楼主用的什么shell?
pdw2009 2010-05-18
  • 打赏
  • 举报
回复
改成:
#!/bin/sh
counter=`ps -ef | grep ecsdomain | grep -v grep | wc -l`
echo $counter
if [ "$counter" -eq 0 ] ; then
echo "呵呵可以启动"
else
echo "有多个ecsdomain进程同时运行请通知管理理停掉相关进程"
fi

还是报:
0403-057 Syntax error at line 8 : `fi' is not expected.
brookmill 2010-05-18
  • 打赏
  • 举报
回复
-ge 不对吧?
根据楼主的意图, 我觉得应该是 -eq

if [ "$counter" -eq 0 ] ; then
brookmill 2010-05-18
  • 打赏
  • 举报
回复
if [ $counter -ge 0] ; then
brookmill 2010-05-18
  • 打赏
  • 举报
回复
if [ $counter -ge 0] ; then
在0和中括号之间应该有个空格

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧