#!/bin/bash
monthNumToName(){
# 这里使用case语句,根据传递过来的第一个参数,设置返回的月份的格式
case $1 in
1 ) month="Jpa" ;;
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 numberic month value $1">&2
exit 1
# shell和别的语言不一样 1 多认为异常 0 代表正常 true
esac
return 0
}
# -ne 参数不等于3个,注意[]和字符相接都有空格
if [ $# -ne 3 ];then
echo "$0: 期待接收 月 日 年">&2
echo "格式是 August 3 1963 and 8 3 1962">&2
exit 1
fi
# 判断年的参数必须为4为数字
if [ $3 -le 999 ]; then
echo "$0: 年必须是4位数字">&2
exit 1
fi
# -z 判断是否不为空,为空返回true,set过滤出不是数字的字符,如果为空那么就可以进行月份匹配
if [ -z $(echo $1 | set 's/[[:digit:]]//g') ]; then
monthNumToName $1
else
# 截取第一个字符大写合并第二个和第三个字符
month="$(echo $1|cut -c1|tr '[:lower:]' '[:upper:]')"
month=$month"$(echo $1|cut -c2-3|tr '[:upper:]' '[:lower:]')"
fi
echo $month $2 $3
exit 0
shell 规范日期格式
最新推荐文章于 2023-03-09 15:51:23 发布