LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: 0100

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

[复制链接]
发表于 2003-5-21 23:34:48 | 显示全部楼层
[javalee@Linux ~/lx]$ cat mycal
#
if ( $# != 2 ) then
echo You must input the month and years
exit
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:
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 Please input right month!
breaksw

endsw

endif

[javalee@Linux ~/lx]$ mycal May 2003
      五月 2003
日  一  二  三  四  五  六
             1  2  3
4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

[javalee@Linux ~/lx]$
给你标出来了控制结构,你再仔细看看吧~~~
发表于 2003-5-21 23:35:38 | 显示全部楼层
如果还不是这样的话,我也无能为力啦!;)
TO 0100:
1,用什么哪种shell,就要遵循哪种shell的语法,格式,结构去编写.
2,看书要仔细.
3,要善于自己思考,多想想,多实践,那样你得到的知识才真正属于你自己!
4,感谢你,我对CSH又有了新的理解!
 楼主| 发表于 2003-5-22 00:14:55 | 显示全部楼层
谢谢javalee的指点
shell的格式真的是很难把握.我才用了几天就觉得不同的shell的语法和格式真的是差别很大.刚才我试了一下.在前面加上一句
#! /bin/csh
就可以正确地运行了.
其实在case 后面的May加上双引号也是正确的.
问题是在bash下还不是不能运行.我估计不是switch的问题.
但把程序改成:
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":
                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!
endsw
居然还不行.
发表于 2003-5-22 09:45:32 | 显示全部楼层

是呀,switch是csh里的语法

在bash里当然不可能运行了。
 楼主| 发表于 2003-5-22 11:05:11 | 显示全部楼层
难怪在bash教程里搜索不到.谢谢楼上的兄弟
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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