输入一个 “month day year”格式的日期串,程序将处理” month”为 其英文单词的前三个字母,第一个字母大写,其余的小写。
思路:首先判断month是数字、还是单词,若是数字,则可查“数字—month”映射表(自定义case结构);若是单词,则取前三个字母,并格式化。
函数monthnoToName() 将month数字转换为month名
#!/bin/bash
monthnoToName(){
case $1 in
1)
month="Jan";;
2)
month="Feb";;
3)
month="Mar";;
4)
month="Apri";;
5)
month="May";;
6)
month="Jun";;
7)
month="Jul";;
8)
month="Aug";;
9)
month="Sep";;
10)
month="Oct";;
11)
month="Nov";;
12)
month="Dec";;
esac
}
if [ $# -ne 3 ];then
echo -n "请输入month day year"
exit 1
fi
#######################判断是否为数字,数字的话调用函数,不是就继续执行
if [ -z $(echo $1 |sed 's/[[:digit:]]//') ];then ####删除后为空
monthnoToName $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