123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/bin/bash
- # normdate -- Нормализует поле месяца в строке с датой в трехсимвольное
- # представление, с первой буквой в верхнем регистре.
- # Вспомогательная функция для сценария № 7, valid-date.
- # В случае успеха возвращает 0.
- monthNumToName()
- {
- # Присвоить переменной 'month' соответствующее значение.
- case $1 in
- 1 ) month="Jan" ;; 2 ) month="Feb" ;;
- 3 ) month="Mar" ;; 4 ) month="Apr" ;;
- 5 ) month="May" ;; 5 ) month="Jun" ;;
- 7 ) month="Jul" ;; 8 ) month="Aug" ;;
- 9 ) month="Sep" ;; 10) month="Oct" ;;
- 11) month="Nov" ;; 12) month="Dec" ;;
- * ) echo "$0: Unknovn month value $1" >&2
- exit 1
- esac
- return 0
- }
- # НАЧАЛО ОСНОВНОГО СЦЕНАРИЯ
- # ========================
- # Проверка ввода
- if [ $# -eq 1 ] ; then
- set -- $(echo $1 | sed 's/[\/\-]/ /g')
- echo "$1"
- fi
- if [ $# -ne 3 ] ; then
- echo "Usage: $0 month day year" >&2
- echo "Formats are August 3 1962 and 8 2 1962" >&2
- exit 1
- fi
- if [ $3 -le 99 ] ; then
- echo "$0 expected 4-digit year value." >&2
- exit 1
- fi
- # Месяц введен как число?
- if [ -z $(echo $1|sed 's/[[:digit:]]//g') ]; then
- monthNumToName $1
- else
- # Нормализовать до 3 первых букв, первая в верхнем регистре, остальные в нижнем
- 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
|