输入要求:
1. 月份为英文名称或1至12的数字表示,如 January 或 1
2. 年份由4位数组成,如 2020
格式化为:
3个字母的月份名称(第一个字符大写)、天数及4位数的年份组成
#!/bin/bash # numMonth(){ # 将月份规范成3个字母,首字母大写 case $1 in 1)mon="Jan" ;; 2)mon="Feb" ;; 3)mon="Mar" ;; 4)mon="Apr" ;; 5)mon="May" ;; 6)mon="Jun" ;; 7)mon="Jul" ;; 8)mon="Aug" ;; 9)mon="Sep" ;; 10)mon="Oct" ;; 11)mon="Nor" ;; 12)mon="Dec" ;; *) echo "$0: Unknown month value $1" >&2 exit 1 esac return 0 } # 验证输入 if [ $# -ne 3 ]; then echo "Usage: $0 month day year" >&2 exit 1 fi expr $2 + 0 &>/dev/null if [ $? -ne 0 ]; then echo "$0: days must be digit in [1-31]." >&2 exit 1 fi if [ $2 -lt 1 ]||[ $2 -gt 31 ]; then echo "$0: days must be in [1-31]." >&2 exit 1 fi if [ $3 -le 1000 ] || [ $3 -gt 9999 ]; then echo "$0: expected 4-digit year value." >&2 exit 1 fi if [ -z $(echo $1|sed 's/[[:digit:]]//g') ]; then numMonth $1 else mon="$(echo ${1%${1#?}} |tr [a-z] [A-Z])" # cut -c 1 截取第1个字符 # tr '[:upper:] [:lower:]' 大写转小写 mon="$mon$(echo $1| cut -c 2-3| tr [A-Z] [a-z])" # cut -c 2-3 截取第2至3个字符 fi echo $mon $2 $3 exit 0