日期:2014-05-16  浏览次数:20826 次

shell 编程的小问题!!求教!!
学shell第一天一个题目:
  使用vi编辑器编写一段Shell程序,取名为mycal,实现与Linux中cal命令类似的功能,当输入: 
$mycal [月份名] 年时,屏幕输出指定的年月的月历。例如:
$mycal October 2009
屏幕输出2009年10月的月历。
 我编写的代码如下:

#!/bin/sh
case "$#" in 
0) cal
;;
1) cal $1
;;
2) case "$1" in
  october|OCTOBER)
  cal 10 $2
  ;;
  esac
*) echo "parameter error"
esac
为什么不行 总是报错,请问谁能给我个正确的答案 ?谢谢!

------解决方案--------------------
倒数第二个esac去掉
------解决方案--------------------
外层分支2)忘记了;;结束了。
#!/bin/sh
case "$#" in
0) cal
;;
1) cal $1
;;
2) case "$1" in
october|OCTOBER)
cal 10 $2
;;
esac
;;
*) echo "parameter error"
esac
------解决方案--------------------
#!/bin/sh
case "$#" in
0) cal
;;
1) cal $1
;;
2) case "$1" in
october|OCTOBER) cal 10 $2
;;
esac
;;
*) echo "parameter error"
;;
esac
请核对后自行改正,如果显示正确结果,及时回复;如果错误,请告知。
谢谢
------解决方案--------------------
;;//少了这个
*)