就是把系统自带的cal扩展成可以支持英文缩写的了
还是有漏洞的,不过主要为了练习,就没写的那么细致
只支持英文版本的Unix和Linux

!/bin/bash echo $#; if [ $# -eq 0 ]; then set date; y=$6; m=$2; elif [ $# -eq 1 ]; then m=$1; y=$1; else m=$1; y=$2; fi case $m in Jan|jan) m=1;; Feb|feb) m=2;; Mar|mar) m=3;; Apr|apr) m=4;; May|may) m=5;; Jun|jun) m=6;; Jul|jul) m=7;; Aug|aug) m=8;; Sep|sep) m=9;; Oct|oct) m=10;; Nov|nov) m=11;; Dec|dec) m=12;; [1-9]|10|11|12) m=$m;; *) y=$m;m="" ;; esac cal $m $y;