大家来帮我看看这段程序对不对,错在哪里???谢谢了

cplussz 2003-08-20 07:54:07
这是一段在HP-UNIX下的程序,先是用来判断所登陆到系统中的用户是在哪个集合里的,如果该该用户所在的集合中已经登陆的人数超过配额后,则在其登陆时使他退出UNIX系统,否则就可以使用系统,我从来没写过程序,这是第一次写,希望大家能帮我看看这段程序错在哪里?谢谢!!程序如下:

set -A LM szdlm00 szdlm01 szdlm02 szdlm03 szdlm04 szdlm05 szdlm06
set -A ENG szden00 szden01 szden02 szden03 szden04
set -A OPR szdlm10 szdlm11 szdlm12 szdlm13 szdlm14 szdlm15 \设定了三个集合

a=0
b=0
c=0

if [$LOGNAME in "LM:${LM
  • }"]
    then {a++
    if a>3 then
    {echo "你们部门的用户名额已满,请稍后在试"
    pause
    exit}
    else
    contiue
    fi}
    else if
  • [$LOGNAME in "ENG:${ENG
  • }"]
    then {b++
    if j>3 then
    {echo "你们部门的用户名额已满,请稍后在试"
    pause
    exit}
    else
    contiue
    fi}
    else if
  • [$LOGNAME in "OPR:${OPR
  • }"];
    then {c++;
    if c>4 then
    {echo "你们部门的用户名额已满,请稍后在试"
    pause
    exit}
    else contiue
    fi}
    fi
    fi
    fi

    我用KSH测试时显示第一个‘ELSE’有问题,我不太清楚,所以想请各位高手来帮我看看到底那那里出问题了,谢谢大家!!!!
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
linaxing 2003-08-22
  • 打赏
  • 举报
回复
不是我泼冷水啊,你这段代码除了语法有问题外,好像也根本行不通!
你可以把每个组登陆的人数记录到一个文件中(当然还要处理用户退出时的情况),
或者每次都动态统计一次计算出每个组登陆的人数.
然后再做判断人数是否超过限额.
...
fierygnu 2003-08-21
  • 打赏
  • 举报
回复
写错了,应该是if [ $b -gt 3 ]; then
fierygnu 2003-08-21
  • 打赏
  • 举报
回复
楼主你写的是shell脚本吗?
1、if j>3 then应该是if [ j > 3 ]; then
2、a++是什么语法?a=`expr $a + 1`
3、then后边不需要{ }
4、if [$LOGNAME...中[后边应该有空格

改了这些再看吧。
g_blue 2003-08-21
  • 打赏
  • 举报
回复
是shell吗?
语法不对地,怎么看起来像VB啊 :)

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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