LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1411|回复: 14

兄弟们.我真的没有办法了.

[复制链接]
发表于 2003-5-20 23:26:07 | 显示全部楼层 |阅读模式
我按照版主的建议看了置顶的教程.特别是if的看是看懂了.但在写的时候.却检查不出是哪个地方错了.我把源程序打印出来给老师看.老师也看不出.我想大家也应该是能够看出这个程序的作用的.就是把cal 的功能稍微改动一下而已.
#
if ( $# -ne 2 ) then
echo You must input the month and years
else
switch ($1)
        case "January":
                cal 1 $2
                breaksw
        case "February":
                cal 2 $2
                breaksw
        case "March":
                cal 3 $2
                breaksw
        case "April":
                cal 4 $2
                breaksw
        case "May":
                cal 5 $2
                breaksw
        case "June":
                cal 6 $2
                breaksw
        case "July":
                breaksw
        case "July":
                cal 7 $2
                breaksw
        case "August":
                cal 8 $2
                breaksw
        case "September":
                cal 9 $2
                breaksw
        case "October":
                 cal 10 $2
                breaksw
        case "November":
                cal 11 $2
                breaksw
        case "December":
                cal 12 $2
                breaksw
        default:
        echo "lease input right month!
endif
大家可以看到.我在if的后面和表达式是有加上空格的.
小弟愚昧.还请兄弟多多指点.
 楼主| 发表于 2003-5-20 23:26:50 | 显示全部楼层
忘记说了.错误提示是
if: Expression Syntax.
 楼主| 发表于 2003-5-20 23:28:23 | 显示全部楼层
是不是要把endif改成fi呢?
发表于 2003-5-20 23:34:40 | 显示全部楼层
if: Expression Syntax.
if:表达式格式错误
我研究研究...
发表于 2003-5-20 23:35:43 | 显示全部楼层
最初由 0100 发表
是不是要把endif改成fi呢?

你用的是哪个shell?
如果是bash的话,就是用fi
其他的我也就不知道了。
 楼主| 发表于 2003-5-20 23:40:10 | 显示全部楼层
不用研究了.
我在if前加了一个#就行了.
真奇怪.不是在前一行加一个#就行了吗?
我现在用的是CSH.不过如果用BASH运行的话行的.试过了.
但带来一个新的问题.
/home/st18xx/st1866/mycal: line 4: syntax error near unexpected token `else'
/home/st18xx/st1866/mycal: line 4: `else'
 楼主| 发表于 2003-5-20 23:44:56 | 显示全部楼层
真笨.应该是那个#把if给注释掉了.
 楼主| 发表于 2003-5-20 23:51:27 | 显示全部楼层
刚才把if给注释掉.自然就有那个错误了.
我把表达式改成
if ( $# !=2 )就没有错了.但刚才出现另一个错误.
/home/st18xx/st1866/mycal: line 5: syntax error near unexpected token `$1'
/home/st18xx/st1866/mycal: line 5: `switch ( $1 )'
发表于 2003-5-21 00:16:38 | 显示全部楼层
修改后
#
if ( $# != 2 ) then   //注意:if (表达式) then要在同一行
    echo You must input the month and years
exit
  else
switch ($1)
case 1:
cal $1 $2
breaksw
case 2:
cal $1 $2
breaksw
case 3:
cal $1 $2
breaksw
case 4:
cal $1 $2
breaksw
case 5:
cal $1 $2
breaksw
case 6:
cal $1 $2
breaksw
case 7:
cal $1 $2
breaksw
case 8:
cal $1 $2
breaksw
case 9:
cal $1 $2
breaksw
case 10:
cal $1 $2
breaksw
case 11:
cal $1 $2
breaksw
case 12:
cal $1 $2
breaksw
default:
echo Please input right month!
breaksw
endsw
endif
 楼主| 发表于 2003-5-21 23:21:09 | 显示全部楼层
javalee兄.你这样还不如直接
cal 不就行了?
我的目的就是把月份转化成数字啊.
为什么不能用字符串呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表