1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/sh
check()
{
[ "$2" != "$3" ] && echo "FATAL with '$1': result '$3' do not match with '$2'" || echo "OK for '$1' with '$2'"
}
# 1.2.3.4.5 -> 1
normalize_version1()
{
echo "$1" | sed -e "s|\..*||"
}
# 1.2.3.4.5 -> 1.2
normalize_version2()
{
echo "$1" | sed -e "s|^\([^.][^.]*\.[^.][^.]*\)\..*|\1|"
}
# 1.2.3.4.5 -> 1.2.3
normalize_version3()
{
echo "$1" | sed -e "s|^\([^.][^.]*\.[^.][^.]*\.[^.][^.]*\)\..*|\1|"
}
test1()
{
check "$1" "$2" "$(normalize_version1 "$1")"
}
test2()
{
check "$1" "$2" "$(normalize_version2 "$1")"
}
test3()
{
check "$1" "$2" "$(normalize_version3 "$1")"
}
echo
echo " 1"
test1 1 1
test1 10 10
test1 10.1 10
test1 10.01 10
test1 1.1 1
test1 1.1.1 1
test1 1.2.3.4 1
test1 1.2.3.4.5 1
test1 123 123
echo
echo " 2"
test2 2.1 2.1
test2 2 2
test2 10 10
test2 10.1 10.1
test2 10.01 10.01
test2 1.1 1.1
test2 1.1.1 1.1
test2 1.2.3.4 1.2
test2 1.2.3.4.5 1.2
test2 123 123
echo
echo " 3"
test3 2.1 2.1
test3 2 2
test3 10 10
test3 10.1 10.1
test3 10.01 10.01
test3 1.1 1.1
test3 1.1.1 1.1.1
test3 1.2.3.4 1.2.3
test3 1.2.3.4.5 1.2.3
test3 1.2.3.4.5.6 1.2.3
test3 123 123