日付の形式を整える

#!/bin/sh
#normdate.sh

monthnoToName(){
    case $1 in
        1)  month="Jan" ;;
        2)  month="Feb" ;;
        3)  month="Mar" ;;
        4)  month="Apr" ;;
        5)  month="May" ;;
        6)  month="Jun" ;;
        7)  month="Jul" ;;
        8)  month="Aug" ;;
        9)  month="Sep" ;;
        10) month="Oct" ;;
        11) month="Nov" ;;
        12) month="Dec" ;;
        *)  echo "$0: Unknown numeric month value $1" >&2
            exit 1 ;;
    esac
    return 0
}

if [ $# -ne 3 ]; then
    echo "Usage: $0 month day year" >&2
    echo "Typical input formats Augst 3 2000 and 8 3 2000" >&2
    exit 1
fi
# $1が全て数字かチェック
if [ -z $(echo $1 | sed 's/[[:digit:]]//g') ] ; then
    monthnoToName $1
else
    #最初の1文字目を大文字にして切り出す
    month="$(echo $1 | cut -c1 | tr '[:lower:]' '[:upper:]')"
    #2,3文字目を小文字にして1文字目を頭につける
    month="$month$(echo $1 | cut -c2-3 | tr '[:upper:]' '[:lower:]')"
fi
echo $month $2 $3
exit 0
$ ./normdate.sh 8 3 2000
Aug 3 2000

$ ./normdate.sh Augst 3 2000
Aug 3 2000