monthnumtoname()
{
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 "unknown numberic month"
exit 1
esac
return 0
}
if [ $# -eq 1 ];then
set -- $(echo $1 | sed 's/[\/\-]/ /g')
fi
if [ $# -ne 3 ];then
echo "fromat wrong"
exit 1
fi
if [ $3 -le 99 ];then
echo "expect 4-digit year value"
exit 1
fi
if [ -z $(echo $1 | sed 's/[[:digit:]]//g') ];then #1
monthnumtoname $1
else
month="$(echo $1 | cut -c1 | tr '[:lower:]' '[:upper:"]')" #2
month="$month$(echo $1 | cut -c2-3 | tr '[:upper:]' '[:lower:]')" #3
fi
echo $month $2 $3
exit 0
1: shell中的一些特殊符号
2:shell字符转换命令
tr可以用来删除一段信息当中的文字,或者进行文字信息的替换
tr [-ds] SET1 ...
-d:删除信息当中的SET1这个字符;
-s:替换重复的字符
3:选取命令:cut
cut命令就是将一段信息的某一段切出来,处理的信息是以行为单位
$cut -d'分隔字符' -f fields #此用法用于有特定的分隔字符
$cut -c字符区间
选项与参数
-d: 后面接分隔字符
-f: 根据-d的分隔字符将一段信息划分成数段,用-f取出第几段的意思
-c:以字符的单位取出固定字符区间
运行结果