NBash

Форк
0
61 строка · 1.7 Кб
1
#!/bin/bash
2

3
month_num_to_name()
4
{
5
	case $1 in
6
		1) month="Jan" ;; 2) month="Feb" ;;
7
		3) month="Mar" ;; 4) month="Apr" ;;
8
		5) month="May" ;; 6) month="Jun" ;;
9
		7) month="Jul" ;; 8) month="Aug" ;;
10
		9) month="Sep" ;; 10) month="Oct" ;;
11
		11) month="Nov" ;; 12) month="Dec" ;;
12
		*) echo "$0: Неизвестный номер месяца $1"
13
			exit 1
14
	esac
15
	return 0
16
}
17

18
# Обработка форматов MM/DD/YYYY и MM-DD-YYYY
19
if [ $# -eq 1 ] ; then
20
	set -- "$(echo "$1" | sed 's/[\/\-]/ /g')"
21
fi
22

23
# Проверка что передано 3 аргумента
24
if [ $# -ne 3 ] ; then
25
	echo "Использование: $0 месяц день год"
26
	echo "Доступные форматы August 3 1917 и 10 23 917"
27
	exit 1
28
fi
29

30
# Проверка что год передан верно
31
# year_string="$3"
32
# if [ ${#year_string} -le 3 ] ; then
33
# 	echo "$0: ожидается 4 цифры в значении года"
34
# 	exit 1
35
# fi
36

37
if [ -n "$(echo "$3" | sed 's/[[:digit:]]//g')" ] ; then
38
	echo "$0: Год содержит недопустимые символы"
39
	exit 1
40
elif [ "$3" -le 0 ] ; then
41
	echo "$0: Год не может быть меньше или равен 0"
42
	exit 1
43
fi
44

45
# Проверка что день не больше чем 31
46
if [ "$2" -ge 32 ] ; then
47
	echo "$0: Число дней в месяце не может быть больше чем 31"
48
	exit 1
49
fi
50

51
# Месяц введен как число?
52
if [ -z "$(echo "$1" | sed 's/[[:digit:]]//g')" ] ; then
53
	month_num_to_name "$1"
54
else
55
	month="$(echo "$1" | cut -c1 | tr '[:lower:]' '[:upper:]')"
56
	month="$month$(echo "$1" | cut -c2-3 | tr '[:upper:]' '[:lower:]')"
57
fi
58

59
echo "$month" "$2" "$3"
60

61
exit 0

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.